diff mbox

[RFC] dlm: Remove unused conf from lm_grant

Message ID 1404220810.2717.39.camel@joe-AO725 (mailing list archive)
State New, archived
Headers show

Commit Message

Joe Perches July 1, 2014, 1:20 p.m. UTC
While doing a bit of adding argument names to fs.h,
I looked at lm_grant and it seems the 2nd argument
is always NULL.

How about removing it?

This doesn't apply as it depends on some other patches
but it should be clear enough...

---
 fs/dlm/plock.c     |  8 ++++----
 fs/lockd/svclock.c | 12 +++---------
 include/linux/fs.h |  2 +-
 3 files changed, 8 insertions(+), 14 deletions(-)

Comments

Jeff Layton July 1, 2014, 2:43 p.m. UTC | #1
On Tue, 01 Jul 2014 06:20:10 -0700
Joe Perches <joe@perches.com> wrote:

> While doing a bit of adding argument names to fs.h,
> I looked at lm_grant and it seems the 2nd argument
> is always NULL.
> 
> How about removing it?
> 
> This doesn't apply as it depends on some other patches
> but it should be clear enough...
> 

ACK on the general idea from my standpoint. Anything that simplifies
the file locking interfaces is a good thing, particularly the deferred
locking code.

> ---
>  fs/dlm/plock.c     |  8 ++++----
>  fs/lockd/svclock.c | 12 +++---------
>  include/linux/fs.h |  2 +-
>  3 files changed, 8 insertions(+), 14 deletions(-)
> 
> diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c
> index e59d332..e0ab3a9 100644
> --- a/fs/dlm/plock.c
> +++ b/fs/dlm/plock.c
> @@ -30,7 +30,7 @@ struct plock_op {
>  
>  struct plock_xop {
>  	struct plock_op xop;
> -	int (*callback)(struct file_lock *, struct file_lock *, int);
> +	int (*callback)(struct file_lock *fl, int result);
>  	void *fl;
>  	void *file;
>  	struct file_lock flc;
> @@ -190,7 +190,7 @@ static int dlm_plock_callback(struct plock_op *op)
>  	struct file *file;
>  	struct file_lock *fl;
>  	struct file_lock *flc;
> -	int (*notify)(struct file_lock *fl, struct file_lock *cont, int result) = NULL;
> +	int (*notify)(struct file_lock *fl, int result) = NULL;
>  	struct plock_xop *xop = (struct plock_xop *)op;
>  	int rv = 0;
>  
> @@ -209,7 +209,7 @@ static int dlm_plock_callback(struct plock_op *op)
>  	notify = xop->callback;
>  
>  	if (op->info.rv) {
> -		notify(fl, NULL, op->info.rv);
> +		notify(fl, op->info.rv);
>  		goto out;
>  	}
>  
> @@ -228,7 +228,7 @@ static int dlm_plock_callback(struct plock_op *op)
>  			  (unsigned long long)op->info.number, file, fl);
>  	}
>  
> -	rv = notify(fl, NULL, 0);
> +	rv = notify(fl, 0);
>  	if (rv) {
>  		/* XXX: We need to cancel the fs lock here: */
>  		log_print("dlm_plock_callback: lock granted after lock request "
> diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c
> index ab798a8..2a61701 100644
> --- a/fs/lockd/svclock.c
> +++ b/fs/lockd/svclock.c
> @@ -667,22 +667,16 @@ nlmsvc_cancel_blocked(struct net *net, struct nlm_file *file, struct nlm_lock *l
>   * deferred rpc for GETLK and SETLK.
>   */
>  static void
> -nlmsvc_update_deferred_block(struct nlm_block *block, struct file_lock *conf,
> -			     int result)
> +nlmsvc_update_deferred_block(struct nlm_block *block, int result)
>  {
>  	block->b_flags |= B_GOT_CALLBACK;
>  	if (result == 0)
>  		block->b_granted = 1;
>  	else
>  		block->b_flags |= B_TIMED_OUT;
> -	if (conf) {
> -		if (block->b_fl)
> -			__locks_copy_lock(block->b_fl, conf);
> -	}
>  }
>  
> -static int nlmsvc_grant_deferred(struct file_lock *fl, struct file_lock *conf,
> -					int result)
> +static int nlmsvc_grant_deferred(struct file_lock *fl, int result)
>  {
>  	struct nlm_block *block;
>  	int rc = -ENOENT;
> @@ -697,7 +691,7 @@ static int nlmsvc_grant_deferred(struct file_lock *fl, struct file_lock *conf,
>  					rc = -ENOLCK;
>  					break;
>  				}
> -				nlmsvc_update_deferred_block(block, conf, result);
> +				nlmsvc_update_deferred_block(block, result);
>  			} else if (result == 0)
>  				block->b_granted = 1;
>  
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 36b8648..6150125 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -842,7 +842,7 @@ struct lock_manager_operations {
>  	int (*lm_compare_owner)(struct file_lock *fl1, struct file_lock *fl2);
>  	unsigned long (*lm_owner_key)(struct file_lock *fl);
>  	void (*lm_notify)(struct file_lock *fl);	/* unblock callback */
> -	int (*lm_grant)(struct file_lock *fl, struct file_lock *conf, int result);
> +	int (*lm_grant)(struct file_lock *fl, int result);
>  	void (*lm_break)(struct file_lock *fl);
>  	int (*lm_change)(struct file_lock **fl, int type);
>  };
David Teigland July 1, 2014, 4:46 p.m. UTC | #2
On Tue, Jul 01, 2014 at 10:43:13AM -0400, Jeff Layton wrote:
> On Tue, 01 Jul 2014 06:20:10 -0700
> Joe Perches <joe@perches.com> wrote:
> 
> > While doing a bit of adding argument names to fs.h,
> > I looked at lm_grant and it seems the 2nd argument
> > is always NULL.
> > 
> > How about removing it?
> > 
> > This doesn't apply as it depends on some other patches
> > but it should be clear enough...
> > 
> 
> ACK on the general idea from my standpoint. Anything that simplifies
> the file locking interfaces is a good thing, particularly the deferred
> locking code.

Fine with me.  I'd be happy to remove all the deferred locking code from
dlm; it never really worked.

Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bob Peterson July 1, 2014, 5:16 p.m. UTC | #3
----- Original Message -----
> On Tue, Jul 01, 2014 at 10:43:13AM -0400, Jeff Layton wrote:
> > On Tue, 01 Jul 2014 06:20:10 -0700
> > Joe Perches <joe@perches.com> wrote:
> > 
> > > While doing a bit of adding argument names to fs.h,
> > > I looked at lm_grant and it seems the 2nd argument
> > > is always NULL.
> > > 
> > > How about removing it?
> > > 
> > > This doesn't apply as it depends on some other patches
> > > but it should be clear enough...
> > > 
> > 
> > ACK on the general idea from my standpoint. Anything that simplifies
> > the file locking interfaces is a good thing, particularly the deferred
> > locking code.
> 
> Fine with me.  I'd be happy to remove all the deferred locking code from
> dlm; it never really worked.
> 
> Dave

Hi,

GFS2 uses deferred locks, at the very least in its direct_io path
(gfs2_direct_IO in aops.c). So AFAIK we can't remove THAT without a certain
amount of pain. Steve is on vacation / holiday this week, but he will
be back on Thursday and Friday (which is a holiday).

I'm all for getting rid of useless parameters, and I've done so on
several occasions in GFS2.

Regards,

Bob Peterson
Red Hat File Systems
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Teigland July 1, 2014, 5:22 p.m. UTC | #4
On Tue, Jul 01, 2014 at 01:16:32PM -0400, Bob Peterson wrote:
> ----- Original Message -----
> > On Tue, Jul 01, 2014 at 10:43:13AM -0400, Jeff Layton wrote:
> > > On Tue, 01 Jul 2014 06:20:10 -0700
> > > Joe Perches <joe@perches.com> wrote:
> > > 
> > > > While doing a bit of adding argument names to fs.h,
> > > > I looked at lm_grant and it seems the 2nd argument
> > > > is always NULL.
> > > > 
> > > > How about removing it?
> > > > 
> > > > This doesn't apply as it depends on some other patches
> > > > but it should be clear enough...
> > > > 
> > > 
> > > ACK on the general idea from my standpoint. Anything that simplifies
> > > the file locking interfaces is a good thing, particularly the deferred
> > > locking code.
> > 
> > Fine with me.  I'd be happy to remove all the deferred locking code from
> > dlm; it never really worked.

> GFS2 uses deferred locks, at the very least in its direct_io path
> (gfs2_direct_IO in aops.c). So AFAIK we can't remove THAT without a certain
> amount of pain. Steve is on vacation / holiday this week, but he will
> be back on Thursday and Friday (which is a holiday).

This is about deferred file locks from NFS, not gfs2's "deferred" lock mode.
Dave

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c
index e59d332..e0ab3a9 100644
--- a/fs/dlm/plock.c
+++ b/fs/dlm/plock.c
@@ -30,7 +30,7 @@  struct plock_op {
 
 struct plock_xop {
 	struct plock_op xop;
-	int (*callback)(struct file_lock *, struct file_lock *, int);
+	int (*callback)(struct file_lock *fl, int result);
 	void *fl;
 	void *file;
 	struct file_lock flc;
@@ -190,7 +190,7 @@  static int dlm_plock_callback(struct plock_op *op)
 	struct file *file;
 	struct file_lock *fl;
 	struct file_lock *flc;
-	int (*notify)(struct file_lock *fl, struct file_lock *cont, int result) = NULL;
+	int (*notify)(struct file_lock *fl, int result) = NULL;
 	struct plock_xop *xop = (struct plock_xop *)op;
 	int rv = 0;
 
@@ -209,7 +209,7 @@  static int dlm_plock_callback(struct plock_op *op)
 	notify = xop->callback;
 
 	if (op->info.rv) {
-		notify(fl, NULL, op->info.rv);
+		notify(fl, op->info.rv);
 		goto out;
 	}
 
@@ -228,7 +228,7 @@  static int dlm_plock_callback(struct plock_op *op)
 			  (unsigned long long)op->info.number, file, fl);
 	}
 
-	rv = notify(fl, NULL, 0);
+	rv = notify(fl, 0);
 	if (rv) {
 		/* XXX: We need to cancel the fs lock here: */
 		log_print("dlm_plock_callback: lock granted after lock request "
diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c
index ab798a8..2a61701 100644
--- a/fs/lockd/svclock.c
+++ b/fs/lockd/svclock.c
@@ -667,22 +667,16 @@  nlmsvc_cancel_blocked(struct net *net, struct nlm_file *file, struct nlm_lock *l
  * deferred rpc for GETLK and SETLK.
  */
 static void
-nlmsvc_update_deferred_block(struct nlm_block *block, struct file_lock *conf,
-			     int result)
+nlmsvc_update_deferred_block(struct nlm_block *block, int result)
 {
 	block->b_flags |= B_GOT_CALLBACK;
 	if (result == 0)
 		block->b_granted = 1;
 	else
 		block->b_flags |= B_TIMED_OUT;
-	if (conf) {
-		if (block->b_fl)
-			__locks_copy_lock(block->b_fl, conf);
-	}
 }
 
-static int nlmsvc_grant_deferred(struct file_lock *fl, struct file_lock *conf,
-					int result)
+static int nlmsvc_grant_deferred(struct file_lock *fl, int result)
 {
 	struct nlm_block *block;
 	int rc = -ENOENT;
@@ -697,7 +691,7 @@  static int nlmsvc_grant_deferred(struct file_lock *fl, struct file_lock *conf,
 					rc = -ENOLCK;
 					break;
 				}
-				nlmsvc_update_deferred_block(block, conf, result);
+				nlmsvc_update_deferred_block(block, result);
 			} else if (result == 0)
 				block->b_granted = 1;
 
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 36b8648..6150125 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -842,7 +842,7 @@  struct lock_manager_operations {
 	int (*lm_compare_owner)(struct file_lock *fl1, struct file_lock *fl2);
 	unsigned long (*lm_owner_key)(struct file_lock *fl);
 	void (*lm_notify)(struct file_lock *fl);	/* unblock callback */
-	int (*lm_grant)(struct file_lock *fl, struct file_lock *conf, int result);
+	int (*lm_grant)(struct file_lock *fl, int result);
 	void (*lm_break)(struct file_lock *fl);
 	int (*lm_change)(struct file_lock **fl, int type);
 };