On Sat, Jan 08, 2022 at 07:17:33AM +0000, Matthew Wilcox wrote: > On Sat, Jan 08, 2022 at 09:08:57AM +0200, Amir Goldstein wrote: > > > +#define S_KERNEL_FILE (1 << 17) /* File is in use by the kernel (eg. fs/cachefiles) */ > > > > Trying to brand this flag as a generic "in use by kernel" is misleading. > > Modules other than cachefiles cannot set/clear this flag, because then > > cachefiles won't know that it is allowed to set/clear the flag. > > Huh? If some other kernel module sets it, cachefiles will try to set it, > see it's already set, and fail. Presumably cachefiles does not go round > randomly "unusing" files that it has not previously started using. > > I mean, yes, obviously, it's a kernel module, it can set and clear > whatever flags it likes on any inode in the system, but conceptually, > it's an advisory whole-file lock. So let's name it that way. We have plenty of files in kernel use using filp_open and this flag very obviously means something else.