// SPDX-License-Identifier: GPL-2.0-only /* * snapshot.c Ceph snapshot context utility routines (part of libceph) * * Copyright (C) 2013 Inktank Storage, Inc. */ #include <linux/types.h> #include <linux/export.h> #include <linux/ceph/libceph.h> /* * Ceph snapshot contexts are reference counted objects, and the * returned structure holds a single reference. Acquire additional * references with ceph_get_snap_context(), and release them with * ceph_put_snap_context(). When the reference count reaches zero * the entire structure is freed. */ /* * Create a new ceph snapshot context large enough to hold the * indicated number of snapshot ids (which can be 0). Caller has * to fill in snapc->seq and snapc->snaps[0..snap_count-1]. * * Returns a null pointer if an error occurs. */ struct ceph_snap_context *ceph_create_snap_context(u32 snap_count, gfp_t gfp_flags) { … } EXPORT_SYMBOL(…); struct ceph_snap_context *ceph_get_snap_context(struct ceph_snap_context *sc) { … } EXPORT_SYMBOL(…); void ceph_put_snap_context(struct ceph_snap_context *sc) { … } EXPORT_SYMBOL(…);