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