On 11/03/2017 09:02 AM, Marc-André Lureau wrote: > Hi > > ----- Original Message ----- >> On 10/31/2017 11:40 AM, Marc-André Lureau wrote: >>> Those functions are called for memfd files, backed by shmem or >>> hugetlb (the next patches will handle hugetlb). >>> >>> Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> >>> --- >>> fs/fcntl.c | 2 +- >>> include/linux/shmem_fs.h | 4 ++-- >>> mm/shmem.c | 10 +++++----- >>> 3 files changed, 8 insertions(+), 8 deletions(-) >>> >>> diff --git a/fs/fcntl.c b/fs/fcntl.c >>> index 448a1119f0be..752c23743616 100644 >>> --- a/fs/fcntl.c >>> +++ b/fs/fcntl.c >>> @@ -417,7 +417,7 @@ static long do_fcntl(int fd, unsigned int cmd, unsigned >>> long arg, >>> break; >>> case F_ADD_SEALS: >>> case F_GET_SEALS: >>> - err = shmem_fcntl(filp, cmd, arg); >>> + err = memfd_fcntl(filp, cmd, arg); >>> break; >>> case F_GET_RW_HINT: >>> case F_SET_RW_HINT: >>> diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h >>> index 557d0c3b6eca..0dac8c0f4aa4 100644 >>> --- a/include/linux/shmem_fs.h >>> +++ b/include/linux/shmem_fs.h >>> @@ -109,11 +109,11 @@ extern void shmem_uncharge(struct inode *inode, long >>> pages); >>> >>> #ifdef CONFIG_TMPFS >>> >>> -extern long shmem_fcntl(struct file *file, unsigned int cmd, unsigned long >>> arg); >>> +extern long memfd_fcntl(struct file *file, unsigned int cmd, unsigned long >>> arg); >>> >>> #else >>> >>> -static inline long shmem_fcntl(struct file *f, unsigned int c, unsigned >>> long a) >>> +static inline long memfd_fcntl(struct file *f, unsigned int c, unsigned >>> long a) >>> { >>> return -EINVAL; >>> } >> >> Do we want memfd_fcntl() to work for hugetlbfs if CONFIG_TMPFS is not >> defined? I admit that having CONFIG_HUGETLBFS defined without CONFIG_TMPFS >> is unlikely, but I think possible. Based on the above #ifdef/#else, I >> think hugetlbfs seals will not work if CONFIG_TMPFS is not defined. > > Good point, memfd_create() will not exists either. > > I think this is a separate concern, and preexisting from this patch series though. Ah yes. I should have addressed this when adding hugetlbfs memfd_create support. Of course, one 'simple' way to address this would be to make CONFIG_HUGETLBFS depend on CONFIG_TMPFS. Not sure what people think about this? > Ack the function renaming part? Yes, the remaining code looks fine to me. -- Mike Kravetz > >> -- >> Mike Kravetz >> >>> diff --git a/mm/shmem.c b/mm/shmem.c >>> index 37260c5e12fa..b7811979611f 100644 >>> --- a/mm/shmem.c >>> +++ b/mm/shmem.c >>> @@ -2722,7 +2722,7 @@ static int shmem_wait_for_pins(struct address_space >>> *mapping) >>> F_SEAL_GROW | \ >>> F_SEAL_WRITE) >>> >>> -static int shmem_add_seals(struct file *file, unsigned int seals) >>> +static int memfd_add_seals(struct file *file, unsigned int seals) >>> { >>> struct inode *inode = file_inode(file); >>> struct shmem_inode_info *info = SHMEM_I(inode); >>> @@ -2792,7 +2792,7 @@ static int shmem_add_seals(struct file *file, >>> unsigned int seals) >>> return error; >>> } >>> >>> -static int shmem_get_seals(struct file *file) >>> +static int memfd_get_seals(struct file *file) >>> { >>> if (file->f_op != &shmem_file_operations) >>> return -EINVAL; >>> @@ -2800,7 +2800,7 @@ static int shmem_get_seals(struct file *file) >>> return SHMEM_I(file_inode(file))->seals; >>> } >>> >>> -long shmem_fcntl(struct file *file, unsigned int cmd, unsigned long arg) >>> +long memfd_fcntl(struct file *file, unsigned int cmd, unsigned long arg) >>> { >>> long error; >>> >>> @@ -2810,10 +2810,10 @@ long shmem_fcntl(struct file *file, unsigned int >>> cmd, unsigned long arg) >>> if (arg > UINT_MAX) >>> return -EINVAL; >>> >>> - error = shmem_add_seals(file, arg); >>> + error = memfd_add_seals(file, arg); >>> break; >>> case F_GET_SEALS: >>> - error = shmem_get_seals(file); >>> + error = memfd_get_seals(file); >>> break; >>> default: >>> error = -EINVAL; >>> >> >> -- >> To unsubscribe, send a message with 'unsubscribe linux-mm' in >> the body to majordomo@xxxxxxxxx. For more info on Linux MM, >> see: http://www.linux-mm.org/ . >> Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> >> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>