cachefiles: Implement culling daemon commands
authorDavid Howells <dhowells@redhat.com>
Thu, 21 Oct 2021 07:50:10 +0000 (08:50 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 7 Jan 2022 13:42:35 +0000 (13:42 +0000)
commit07a90e97400c15967c8754fa271ba24d9df71ab5
treed404b7656e01a298cff29b5206135c563989be17
parent169379eaef933ca98c279257cacb313a02f9984d
cachefiles: Implement culling daemon commands

Implement the ability for the userspace daemon to try and cull a file or
directory in the cache.  Two daemon commands are implemented:

 (1) The "inuse" command.  This queries if a file is in use or whether it
     can be deleted.  It checks the S_KERNEL_FILE flag on the inode
     referred to by the specified filename.

 (2) The "cull" command.  This asks for a file or directory to be removed,
     where removal means either unlinking it or moving it to the graveyard
     directory for userspace to dismantle.

Changes
=======
ver #2:
 - Fix logging of wrong error[1].
 - Need to unmark an inode we've moved to the graveyard before unlocking.

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/20211203094950.GA2480@kili/
Link: https://lore.kernel.org/r/163819643179.215744.13641580295708315695.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/163906945705.143852.8177595531814485350.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/163967155792.1823006.1088936326902550910.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/164021555037.640689.9472627499842585255.stgit@warthog.procyon.org.uk/
fs/cachefiles/daemon.c
fs/cachefiles/internal.h
fs/cachefiles/namei.c