Message ID | 20240204-flsplit3-v1-1-9820c7d9ce16@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | filelock: add stubs for new functions when CONFIG_FILE_LOCKING=n | expand |
On Sun, Feb 04, 2024 at 07:32:55AM -0500, Jeff Layton wrote: > We recently added several functions to the file locking API. Add stubs > for those functions for when CONFIG_FILE_LOCKING is set to n. > > Fixes: 403594111407 ("filelock: add some new helper functions") > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202402041412.6YvtlflL-lkp@intel.com/ > Signed-off-by: Jeff Layton <jlayton@kernel.org> > --- > Just a small follow-on fix for CONFIG_FILE_LOCKING=n builds for the > file_lease split. Christian, it might be best to squash this into > the patch it Fixes. > > That said, I'm starting to wonder if we ought to just hardcode > CONFIG_FILE_LOCKING to y. Does anyone ship kernels with it disabled? I > guess maybe people with stripped-down embedded builds might? One thing you might try is building a kernel with both settings and compare the resulting object sizes. CONFIG_FILE_LOCKING was added during the git era, actually, so we have some reasonable archaeology available: commit bfcd17a6c5529bc37234cfa720a047cf9397bcfc Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> AuthorDate: Wed Aug 6 15:12:22 2008 +0200 Commit: J. Bruce Fields <bfields@fieldses.org> CommitDate: Mon Sep 29 17:56:57 2008 -0400 Configure out file locking features This patch adds the CONFIG_FILE_LOCKING option which allows to remove support for advisory locks. With this patch enabled, the flock() system call, the F_GETLK, F_SETLK and F_SETLKW operations of fcntl() and NFS support are disabled. These features are not necessarly needed on embedded systems. It allows to save ~11 Kb of kernel code and data: text data bss dec hex filename 1125436 118764 212992 1457192 163c28 vmlinux.old 1114299 118564 212992 1445855 160fdf vmlinux -11137 -200 0 -11337 -2C49 +/- This patch has originally been written by Matt Mackall <mpm@selenic.com>, and is part of the Linux Tiny project. Embedded folks might want to keep CONFIG_FILE_LOCKING. > Another thought too: "locks_" as a prefix is awfully generic. Might it be > better to rename these new functions with a "filelock_" prefix instead? > That would better distinguish to the casual reader that this is dealing > with a file_lock object. I'm happy to respin the set if that's the > consensus. "posix_lock" might be even better, but no-one likes to make function names longer. > --- > include/linux/filelock.h | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/include/linux/filelock.h b/include/linux/filelock.h > index 4a5ad26962c1..553d65a88048 100644 > --- a/include/linux/filelock.h > +++ b/include/linux/filelock.h > @@ -263,6 +263,27 @@ static inline int fcntl_getlease(struct file *filp) > return F_UNLCK; > } > > +static inline bool lock_is_unlock(struct file_lock *fl) > +{ > + return false; > +} > + > +static inline bool lock_is_read(struct file_lock *fl) > +{ > + return false; > +} > + > +static inline bool lock_is_write(struct file_lock *fl) > +{ > + return false; > +} > + > +static inline void locks_wake_up(struct file_lock *fl) > +{ > +} > + > +#define for_each_file_lock(_fl, _head) while(false) > + > static inline void > locks_free_lock_context(struct inode *inode) > { > > --- > base-commit: 1499e59af376949b062cdc039257f811f6c1697f > change-id: 20240204-flsplit3-da666d82b7b4 > > Best regards, > -- > Jeff Layton <jlayton@kernel.org> > >
> Another thought too: "locks_" as a prefix is awfully generic. Might it be > better to rename these new functions with a "filelock_" prefix instead? > That would better distinguish to the casual reader that this is dealing > with a file_lock object. I'm happy to respin the set if that's the > consensus. If it's just a rename then just point me to a branch I can pull. I don't think it's worth resending just because you effectively did some variant of s/lock_*/filelock_*/g In any case, folded this one.
On Mon, 2024-02-05 at 13:10 +0100, Christian Brauner wrote: > > Another thought too: "locks_" as a prefix is awfully generic. Might it be > > better to rename these new functions with a "filelock_" prefix instead? > > That would better distinguish to the casual reader that this is dealing > > with a file_lock object. I'm happy to respin the set if that's the > > consensus. > > If it's just a rename then just point me to a branch I can pull. I don't > think it's worth resending just because you effectively did some variant > of s/lock_*/filelock_*/g > > In any case, folded this one. Thanks! I haven't done a rename (yet). I was just trying to feel out whether it was worthwhile. At this point, I'm thinking I'll just leave them as-is., but let me know if anyone has opinions to the contrary.
diff --git a/include/linux/filelock.h b/include/linux/filelock.h index 4a5ad26962c1..553d65a88048 100644 --- a/include/linux/filelock.h +++ b/include/linux/filelock.h @@ -263,6 +263,27 @@ static inline int fcntl_getlease(struct file *filp) return F_UNLCK; } +static inline bool lock_is_unlock(struct file_lock *fl) +{ + return false; +} + +static inline bool lock_is_read(struct file_lock *fl) +{ + return false; +} + +static inline bool lock_is_write(struct file_lock *fl) +{ + return false; +} + +static inline void locks_wake_up(struct file_lock *fl) +{ +} + +#define for_each_file_lock(_fl, _head) while(false) + static inline void locks_free_lock_context(struct inode *inode) {
We recently added several functions to the file locking API. Add stubs for those functions for when CONFIG_FILE_LOCKING is set to n. Fixes: 403594111407 ("filelock: add some new helper functions") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202402041412.6YvtlflL-lkp@intel.com/ Signed-off-by: Jeff Layton <jlayton@kernel.org> --- Just a small follow-on fix for CONFIG_FILE_LOCKING=n builds for the file_lease split. Christian, it might be best to squash this into the patch it Fixes. That said, I'm starting to wonder if we ought to just hardcode CONFIG_FILE_LOCKING to y. Does anyone ship kernels with it disabled? I guess maybe people with stripped-down embedded builds might? Another thought too: "locks_" as a prefix is awfully generic. Might it be better to rename these new functions with a "filelock_" prefix instead? That would better distinguish to the casual reader that this is dealing with a file_lock object. I'm happy to respin the set if that's the consensus. --- include/linux/filelock.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) --- base-commit: 1499e59af376949b062cdc039257f811f6c1697f change-id: 20240204-flsplit3-da666d82b7b4 Best regards,