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@xxxxxxxxx> > Closes: https://lore.kernel.org/oe-kbuild-all/202402041412.6YvtlflL-lkp@xxxxxxxxx/ > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxx> AuthorDate: Wed Aug 6 15:12:22 2008 +0200 Commit: J. Bruce Fields <bfields@xxxxxxxxxxxx> 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@xxxxxxxxxxx>, 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@xxxxxxxxxx> > > -- Chuck Lever