Quoting ntl@xxxxxxxxx (ntl@xxxxxxxxx): > From: Nathan Lynch <ntl@xxxxxxxxx> > > When restoring process state from a checkpoint image, it will be > necessary to restore file status flags; add vfs_fcntl() for this > purpose. > > Based on original code by Oren Laadan. > > Signed-off-by: Oren Laadan <orenl@xxxxxxxxxxxxxxx> > [ntl: extracted from "c/r: checkpoint and restart open file descriptors"] > Signed-off-by: Nathan Lynch <ntl@xxxxxxxxx> Acked-by: Serge Hallyn <serge.hallyn@xxxxxxxxxx> > --- > fs/fcntl.c | 21 +++++++++++++-------- > include/linux/fs.h | 2 ++ > 2 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/fs/fcntl.c b/fs/fcntl.c > index ecc8b39..8e797b7 100644 > --- a/fs/fcntl.c > +++ b/fs/fcntl.c > @@ -426,6 +426,18 @@ static long do_fcntl(int fd, unsigned int cmd, unsigned long arg, > return err; > } > > +int vfs_fcntl(int fd, unsigned int cmd, unsigned long arg, struct file *filp) > +{ > + int err; > + > + err = security_file_fcntl(filp, cmd, arg); > + if (err) > + goto out; > + err = do_fcntl(fd, cmd, arg, filp); > + out: > + return err; > +} > + > SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg) > { > struct file *filp; > @@ -435,14 +447,7 @@ SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg) > if (!filp) > goto out; > > - err = security_file_fcntl(filp, cmd, arg); > - if (err) { > - fput(filp); > - return err; > - } > - > - err = do_fcntl(fd, cmd, arg, filp); > - > + err = vfs_fcntl(fd, cmd, arg, filp); > fput(filp); > out: > return err; > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 315ded4..175bb75 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -1112,6 +1112,8 @@ struct file_lock { > > #include <linux/fcntl.h> > > +extern int vfs_fcntl(int fd, unsigned cmd, unsigned long arg, struct file *fp); > + > extern void send_sigio(struct fown_struct *fown, int fd, int band); > > #ifdef CONFIG_FILE_LOCKING > -- > 1.7.4 > > _______________________________________________ > Containers mailing list > Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx > https://lists.linux-foundation.org/mailman/listinfo/containers _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers