OSDN Git Service

cachefiles: Check that the backing filesystem supports tmpfiles
authorDavid Howells <dhowells@redhat.com>
Fri, 7 Jan 2022 10:57:45 +0000 (10:57 +0000)
committerDavid Howells <dhowells@redhat.com>
Fri, 21 Jan 2022 21:36:28 +0000 (21:36 +0000)
Add a check that the backing filesystem supports the creation of
tmpfiles[1].

Suggested-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
cc: linux-cachefs@redhat.com
Link: https://lore.kernel.org/r/568749bd7cc02908ecf6f3d6a611b6f9cf5c4afd.camel@kernel.org/
Link: https://lore.kernel.org/r/164251406558.3435901.1249023136670058162.stgit@warthog.procyon.org.uk/
fs/cachefiles/cache.c

index 2b2879c..7077f72 100644 (file)
@@ -51,6 +51,7 @@ int cachefiles_add_cache(struct cachefiles_cache *cache)
 
        /* Check features of the backing filesystem:
         * - Directories must support looking up and directory creation
+        * - We create tmpfiles to handle invalidation
         * - We use xattrs to store metadata
         * - We need to be able to query the amount of space available
         * - We want to be able to sync the filesystem when stopping the cache
@@ -60,6 +61,7 @@ int cachefiles_add_cache(struct cachefiles_cache *cache)
        if (d_is_negative(root) ||
            !d_backing_inode(root)->i_op->lookup ||
            !d_backing_inode(root)->i_op->mkdir ||
+           !d_backing_inode(root)->i_op->tmpfile ||
            !(d_backing_inode(root)->i_opflags & IOP_XATTR) ||
            !root->d_sb->s_op->statfs ||
            !root->d_sb->s_op->sync_fs ||