Re: [PATCH] ceph: don't allow setlease on cephfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 24, 2020 at 6:03 PM Jeff Layton <jlayton@xxxxxxxxxx> wrote:
>
> On Mon, 2020-08-24 at 17:38 +0200, Ilya Dryomov wrote:
> > On Thu, Aug 20, 2020 at 5:13 PM Jeff Layton <jlayton@xxxxxxxxxx> wrote:
> > > Leases don't currently work correctly on kcephfs, as they are not broken
> > > when caps are revoked. They could eventually be implemented similarly to
> > > how we did them in libcephfs, but for now don't allow them.
> > >
> > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> > > ---
> > >  fs/ceph/dir.c  | 2 ++
> > >  fs/ceph/file.c | 1 +
> > >  2 files changed, 3 insertions(+)
> > >
> > > diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
> > > index 040eaad9d063..34f669220a8b 100644
> > > --- a/fs/ceph/dir.c
> > > +++ b/fs/ceph/dir.c
> > > @@ -1935,6 +1935,7 @@ const struct file_operations ceph_dir_fops = {
> > >         .compat_ioctl = compat_ptr_ioctl,
> > >         .fsync = ceph_fsync,
> > >         .lock = ceph_lock,
> > > +       .setlease = simple_nosetlease,
> > >         .flock = ceph_flock,
> > >  };
> > >
> > > @@ -1943,6 +1944,7 @@ const struct file_operations ceph_snapdir_fops = {
> > >         .llseek = ceph_dir_llseek,
> > >         .open = ceph_open,
> > >         .release = ceph_release,
> > > +       .setlease = simple_nosetlease,
> >
> > Hi Jeff,
> >
> > Isn't this redundant for directories?
> >
> > Thanks,
> >
> >                 Ilya
>
> generic_setlease does currently return -EINVAL if you try to set it on
> anything but a regular file. But, there is nothing that prevents that at
> a higher level. A filesystem can implement a ->setlease op that allows
> it.
>
> So yeah, that doesn't really have of an effect since you'd likely get
> back -EINVAL anyway, but adding this line in it makes that explicit.

It looks like gfs2 and nfs only set simple_nosetlease for file fops,
so it might be more consistent if we did this only for ceph_file_fops
as well.

Thanks,

                Ilya



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux