[Devel] Re: [RFC][PATCH 1/3][cr][v2]: Define do_setlease()
Serge E. Hallyn
serue at us.ibm.com
Wed May 26 06:52:56 PDT 2010
Quoting Sukadev Bhattiprolu (sukadev at linux.vnet.ibm.com):
> Move the core functionality of fcntl_setlease() into a new function,
> do_setlease(). do_setlease() is same as fcntl_setlease() except that
> it takes an extra 'rem_lease' parameter. do_setlease() will be used
> in a follow-on patch to checkpoint/restart file-leases.
>
> Signed-off-by: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
> ---
> fs/locks.c | 27 ++++++++++++++++-----------
> include/linux/fs.h | 1 +
> 2 files changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/fs/locks.c b/fs/locks.c
> index c62ab7f..4107295 100644
> --- a/fs/locks.c
> +++ b/fs/locks.c
> @@ -1471,17 +1471,7 @@ int vfs_setlease(struct file *filp, long arg, struct file_lock **lease)
> }
> EXPORT_SYMBOL_GPL(vfs_setlease);
>
> -/**
> - * fcntl_setlease - sets a lease on an open file
> - * @fd: open file descriptor
> - * @filp: file pointer
> - * @arg: type of lease to obtain
> - *
> - * Call this fcntl to establish a lease on the file.
> - * Note that you also need to call %F_SETSIG to
> - * receive a signal when the lease is broken.
> - */
> -int fcntl_setlease(unsigned int fd, struct file *filp, long arg)
> +int do_setlease(unsigned int fd, struct file *filp, long arg, int rem_lease)
> {
Note that rem_lease arg here is int, but the value you're checkpointing
and passing in is unsigned long. So userspace on 64-bit could easily
overflow that, though not sure to what end. Also putting 'unsigned long'
in the checkpoint_hdr.h is not in keeping with the rest of that file.
thanks,
-serge
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list