On Tue, 19 Aug 2014 23:18:58 +0800 Kinglong Mee <kinglongmee@xxxxxxxxx> wrote: > NFSD or other lockmanager may increase the owner's reference, > so adds two new options for copying and releasing owner. > > v4: rename lm_copy_owner/lm_release_owner to lm_get_owner/lm_put_owner > > Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx> > --- > fs/locks.c | 12 ++++++++++-- > include/linux/fs.h | 2 ++ > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/fs/locks.c b/fs/locks.c > index cb66fb0..08342e0 100644 > --- a/fs/locks.c > +++ b/fs/locks.c > @@ -230,8 +230,12 @@ void locks_release_private(struct file_lock *fl) > fl->fl_ops->fl_release_private(fl); > fl->fl_ops = NULL; > } > - fl->fl_lmops = NULL; > > + if (fl->fl_lmops) { > + if (fl->fl_lmops->lm_put_owner) > + fl->fl_lmops->lm_put_owner(fl); > + fl->fl_lmops = NULL; > + } > } > EXPORT_SYMBOL_GPL(locks_release_private); > > @@ -274,8 +278,12 @@ static void locks_copy_private(struct file_lock *new, struct file_lock *fl) > fl->fl_ops->fl_copy_lock(new, fl); > new->fl_ops = fl->fl_ops; > } > - if (fl->fl_lmops) > + > + if (fl->fl_lmops) { > + if (fl->fl_lmops->lm_get_owner) > + fl->fl_lmops->lm_get_owner(new, fl); > new->fl_lmops = fl->fl_lmops; > + } > } > > /* > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 908af4f..6829340 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -868,6 +868,8 @@ struct file_lock_operations { > struct lock_manager_operations { > int (*lm_compare_owner)(struct file_lock *, struct file_lock *); > unsigned long (*lm_owner_key)(struct file_lock *); > + void (*lm_get_owner)(struct file_lock *, struct file_lock *); > + void (*lm_put_owner)(struct file_lock *); > void (*lm_notify)(struct file_lock *); /* unblock callback */ > int (*lm_grant)(struct file_lock *, int); > void (*lm_break)(struct file_lock *); Looks good. I'd probably move patch #3 before this one but that's just a minor nit. Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html