netfs, fscache: export fscache_put_volume() and add fscache_try_get_volume()
Export fscache_put_volume() and add fscache_try_get_volume() helper function to allow cachefiles to get/put fscache_volume via linux/fscache-cache.h. Signed-off-by: Baokun Li <libaokun1@huawei.com> Link: https://lore.kernel.org/r/20240628062930.2467993-2-libaokun@huaweicloud.com Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
163eae0fb0
commit
85b08b31a2
@ -27,6 +27,19 @@ struct fscache_volume *fscache_get_volume(struct fscache_volume *volume,
|
||||
return volume;
|
||||
}
|
||||
|
||||
struct fscache_volume *fscache_try_get_volume(struct fscache_volume *volume,
|
||||
enum fscache_volume_trace where)
|
||||
{
|
||||
int ref;
|
||||
|
||||
if (!__refcount_inc_not_zero(&volume->ref, &ref))
|
||||
return NULL;
|
||||
|
||||
trace_fscache_volume(volume->debug_id, ref + 1, where);
|
||||
return volume;
|
||||
}
|
||||
EXPORT_SYMBOL(fscache_try_get_volume);
|
||||
|
||||
static void fscache_see_volume(struct fscache_volume *volume,
|
||||
enum fscache_volume_trace where)
|
||||
{
|
||||
@ -420,6 +433,7 @@ void fscache_put_volume(struct fscache_volume *volume,
|
||||
fscache_free_volume(volume);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(fscache_put_volume);
|
||||
|
||||
/*
|
||||
* Relinquish a volume representation cookie.
|
||||
|
@ -352,8 +352,6 @@ extern const struct seq_operations fscache_volumes_seq_ops;
|
||||
|
||||
struct fscache_volume *fscache_get_volume(struct fscache_volume *volume,
|
||||
enum fscache_volume_trace where);
|
||||
void fscache_put_volume(struct fscache_volume *volume,
|
||||
enum fscache_volume_trace where);
|
||||
bool fscache_begin_volume_access(struct fscache_volume *volume,
|
||||
struct fscache_cookie *cookie,
|
||||
enum fscache_access_trace why);
|
||||
|
@ -19,6 +19,7 @@
|
||||
enum fscache_cache_trace;
|
||||
enum fscache_cookie_trace;
|
||||
enum fscache_access_trace;
|
||||
enum fscache_volume_trace;
|
||||
|
||||
enum fscache_cache_state {
|
||||
FSCACHE_CACHE_IS_NOT_PRESENT, /* No cache is present for this name */
|
||||
@ -97,6 +98,11 @@ extern void fscache_withdraw_cookie(struct fscache_cookie *cookie);
|
||||
|
||||
extern void fscache_io_error(struct fscache_cache *cache);
|
||||
|
||||
extern struct fscache_volume *
|
||||
fscache_try_get_volume(struct fscache_volume *volume,
|
||||
enum fscache_volume_trace where);
|
||||
extern void fscache_put_volume(struct fscache_volume *volume,
|
||||
enum fscache_volume_trace where);
|
||||
extern void fscache_end_volume_access(struct fscache_volume *volume,
|
||||
struct fscache_cookie *cookie,
|
||||
enum fscache_access_trace why);
|
||||
|
Loading…
x
Reference in New Issue
Block a user