public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] pnfs-submit: Remove lo_lock and use i_lock instead
@ 2010-06-15  7:59 Fred Isaman
  2010-06-15 21:06 ` Benny Halevy
  0 siblings, 1 reply; 2+ messages in thread
From: Fred Isaman @ 2010-06-15  7:59 UTC (permalink / raw)
  To: linux-nfs

Signed-off-by: Fred Isaman <iisaman@netapp.com>
---
 fs/nfs/inode.c         |    2 +-
 fs/nfs/pnfs.c          |   54 ++++++++++++++++++++++++------------------------
 include/linux/nfs_fs.h |    1 -
 3 files changed, 28 insertions(+), 29 deletions(-)

diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index cdec539..e51f882 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1417,7 +1417,7 @@ static void pnfs_init_once(struct nfs_inode *nfsi)
 {
 #ifdef CONFIG_NFS_V4_1
 	init_waitqueue_head(&nfsi->lo_waitq);
-	spin_lock_init(&nfsi->lo_lock);
+	spin_lock_init(&nfsi->vfs_inode.i_lock);
 	seqlock_init(&nfsi->layout.seqlock);
 	INIT_LIST_HEAD(&nfsi->layout.lo_layouts);
 	INIT_LIST_HEAD(&nfsi->layout.segs);
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 7d322c9..4afa4cf 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -152,15 +152,15 @@ void
 pnfs_need_layoutcommit(struct nfs_inode *nfsi, struct nfs_open_context *ctx)
 {
 	dprintk("%s: has_layout=%d ctx=%p\n", __func__, has_layout(nfsi), ctx);
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&nfsi->vfs_inode.i_lock);
 	if (has_layout(nfsi) && !layoutcommit_needed(nfsi)) {
 		nfsi->layout.lo_cred = get_rpccred(ctx->state->owner->so_cred);
 		nfsi->change_attr++;
-		spin_unlock(&nfsi->lo_lock);
+		spin_unlock(&nfsi->vfs_inode.i_lock);
 		dprintk("%s: Set layoutcommit\n", __func__);
 		return;
 	}
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&nfsi->vfs_inode.i_lock);
 }
 
 /* Update last_write_offset for layoutcommit.
@@ -173,7 +173,7 @@ pnfs_update_last_write(struct nfs_inode *nfsi, loff_t offset, size_t extent)
 {
 	loff_t end_pos;
 
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&nfsi->vfs_inode.i_lock);
 	if (offset < nfsi->layout.pnfs_write_begin_pos)
 		nfsi->layout.pnfs_write_begin_pos = offset;
 	end_pos = offset + extent - 1; /* I'm being inclusive */
@@ -185,7 +185,7 @@ pnfs_update_last_write(struct nfs_inode *nfsi, loff_t offset, size_t extent)
 		(unsigned long) offset ,
 		(unsigned long) nfsi->layout.pnfs_write_begin_pos,
 		(unsigned long) nfsi->layout.pnfs_write_end_pos);
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&nfsi->vfs_inode.i_lock);
 }
 
 /* Unitialize a mountpoint in a layout driver */
@@ -315,7 +315,7 @@ pnfs_unregister_layoutdriver(struct pnfs_layoutdriver_type *ld_type)
  */
 #if defined(CONFIG_SMP)
 #define BUG_ON_UNLOCKED_LO(lo) \
-	BUG_ON(!spin_is_locked(&PNFS_NFS_INODE(lo)->lo_lock))
+	BUG_ON(!spin_is_locked(&PNFS_INODE(lo)->i_lock))
 #else /* CONFIG_SMP */
 #define BUG_ON_UNLOCKED_LO(lo) do {} while (0)
 #endif /* CONFIG_SMP */
@@ -329,9 +329,9 @@ get_lock_current_layout(struct nfs_inode *nfsi)
 	struct pnfs_layout_type *lo;
 
 	lo = &nfsi->layout;
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&nfsi->vfs_inode.i_lock);
 	if (!lo->ld_data) {
-		spin_unlock(&nfsi->lo_lock);
+		spin_unlock(&nfsi->vfs_inode.i_lock);
 		return NULL;
 	}
 
@@ -345,7 +345,7 @@ get_lock_current_layout(struct nfs_inode *nfsi)
 static inline void
 put_unlock_current_layout(struct pnfs_layout_type *lo)
 {
-	struct nfs_inode *nfsi = PNFS_NFS_INODE(lo);
+	struct inode *inode = PNFS_INODE(lo);
 	struct nfs_client *clp;
 
 	BUG_ON_UNLOCKED_LO(lo);
@@ -360,12 +360,12 @@ put_unlock_current_layout(struct pnfs_layout_type *lo)
 		lo->ld_data = NULL;
 
 		/* Unlist the layout. */
-		clp = NFS_SERVER(&nfsi->vfs_inode)->nfs_client;
+		clp = NFS_SERVER(inode)->nfs_client;
 		spin_lock(&clp->cl_lock);
 		list_del_init(&lo->lo_layouts);
 		spin_unlock(&clp->cl_lock);
 	}
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&inode->i_lock);
 }
 
 void
@@ -374,7 +374,7 @@ pnfs_layout_release(struct pnfs_layout_type *lo,
 {
 	struct nfs_inode *nfsi = PNFS_NFS_INODE(lo);
 
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&nfsi->vfs_inode.i_lock);
 	if (range)
 		pnfs_free_layout(lo, range);
 	put_unlock_current_layout(lo);
@@ -446,9 +446,9 @@ put_lseg(struct pnfs_layout_segment *lseg)
 		atomic_read(&lseg->kref.refcount), lseg->valid);
 	do_wake_up = !lseg->valid;
 	nfsi = PNFS_NFS_INODE(lseg->layout);
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&nfsi->vfs_inode.i_lock);
 	kref_put(&lseg->kref, destroy_lseg);
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&nfsi->vfs_inode.i_lock);
 	if (do_wake_up)
 		wake_up(&nfsi->lo_waitq);
 }
@@ -686,7 +686,7 @@ pnfs_return_layout_barrier(struct nfs_inode *nfsi,
 	struct pnfs_layout_segment *lseg;
 	bool ret = false;
 
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&nfsi->vfs_inode.i_lock);
 	list_for_each_entry (lseg, &nfsi->layout.segs, fi_list) {
 		if (!should_free_lseg(lseg, range))
 			continue;
@@ -698,7 +698,7 @@ pnfs_return_layout_barrier(struct nfs_inode *nfsi,
 			ret = true;
 		}
 	}
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&nfsi->vfs_inode.i_lock);
 	dprintk("%s:Return %d\n", __func__, ret);
 	return ret;
 }
@@ -772,12 +772,12 @@ _pnfs_return_layout(struct inode *ino, struct nfs4_pnfs_layout_segment *range,
 		/* unlock w/o put rebalanced by eventual call to
 		 * pnfs_layout_release
 		 */
-		spin_unlock(&nfsi->lo_lock);
+		spin_unlock(&ino->i_lock);
 
 		if (pnfs_return_layout_barrier(nfsi, &arg)) {
 			if (stateid) { /* callback */
 				status = -EAGAIN;
-				spin_lock(&nfsi->lo_lock);
+				spin_lock(&ino->i_lock);
 				put_unlock_current_layout(lo);
 				goto out;
 			}
@@ -922,7 +922,7 @@ static int pnfs_wait_schedule(void *word)
 /*
  * get, possibly allocate, and lock current_layout
  *
- * Note: If successful, nfsi->lo_lock is taken and the caller
+ * Note: If successful, ino->i_lock is taken and the caller
  * must put and unlock current_layout by using put_unlock_current_layout()
  * when the returned layout is released.
  */
@@ -959,7 +959,7 @@ get_lock_alloc_layout(struct inode *ino)
 			struct nfs_client *clp = NFS_SERVER(ino)->nfs_client;
 
 			/* must grab the layout lock before the client lock */
-			spin_lock(&nfsi->lo_lock);
+			spin_lock(&ino->i_lock);
 
 			spin_lock(&clp->cl_lock);
 			if (list_empty(&lo->lo_layouts))
@@ -1111,7 +1111,7 @@ _pnfs_update_layout(struct inode *ino,
 	}
 
 	/* Lose lock, but not reference, match this with pnfs_layout_release */
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&ino->i_lock);
 
 	get_layout(ino, ctx, &arg, lsegpp, lo);
 out:
@@ -1235,7 +1235,7 @@ pnfs_layout_process(struct nfs4_pnfs_layoutget *lgp)
 	struct pnfs_layout_type *lo = lgp->lo;
 	struct nfs4_pnfs_layoutget_res *res = &lgp->res;
 	struct pnfs_layout_segment *lseg;
-	struct nfs_inode *nfsi = PNFS_NFS_INODE(lo);
+	struct inode *ino = PNFS_INODE(lo);
 	int status = 0;
 
 	/* Inject layout blob into I/O device driver */
@@ -1257,7 +1257,7 @@ pnfs_layout_process(struct nfs4_pnfs_layoutget *lgp)
 		*lgp->lsegpp = lseg;
 	}
 
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&ino->i_lock);
 	pnfs_insert_layout(lo, lseg);
 
 	if (res->return_on_close) {
@@ -1268,7 +1268,7 @@ pnfs_layout_process(struct nfs4_pnfs_layoutget *lgp)
 
 	/* Done processing layoutget. Set the layout stateid */
 	pnfs_set_layout_stateid(lo, &res->stateid);
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&ino->i_lock);
 out:
 	return status;
 }
@@ -1785,9 +1785,9 @@ pnfs_layoutcommit_inode(struct inode *inode, int sync)
 	if (!data)
 		return -ENOMEM;
 
-	spin_lock(&nfsi->lo_lock);
+	spin_lock(&inode->i_lock);
 	if (!layoutcommit_needed(nfsi)) {
-		spin_unlock(&nfsi->lo_lock);
+		spin_unlock(&inode->i_lock);
 		goto out_free;
 	}
 
@@ -1802,7 +1802,7 @@ pnfs_layoutcommit_inode(struct inode *inode, int sync)
 	nfsi->layout.lo_cred = NULL;
 	pnfs_get_layout_stateid(&data->args.stateid, &nfsi->layout);
 
-	spin_unlock(&nfsi->lo_lock);
+	spin_unlock(&inode->i_lock);
 
 	/* Set up layout commit args */
 	status = pnfs_layoutcommit_setup(inode, data, write_begin_pos,
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 41026cb..a60d880 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -206,7 +206,6 @@ struct nfs_inode {
 	/* pNFS layout information */
 #if defined(CONFIG_NFS_V4_1)
 	wait_queue_head_t lo_waitq;
-	spinlock_t lo_lock;
 	struct pnfs_layout_type layout;
 #endif /* CONFIG_NFS_V4_1 */
 #endif /* CONFIG_NFS_V4*/
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/1] pnfs-submit: Remove lo_lock and use i_lock instead
  2010-06-15  7:59 [PATCH 1/1] pnfs-submit: Remove lo_lock and use i_lock instead Fred Isaman
@ 2010-06-15 21:06 ` Benny Halevy
  0 siblings, 0 replies; 2+ messages in thread
From: Benny Halevy @ 2010-06-15 21:06 UTC (permalink / raw)
  To: Fred Isaman; +Cc: linux-nfs

On 2010-06-15 03:59, Fred Isaman wrote:
> Signed-off-by: Fred Isaman <iisaman@netapp.com>

Thanks!
I queued it in pnfs-submit.
Should go out in the next batch.

Benny

> ---
>  fs/nfs/inode.c         |    2 +-
>  fs/nfs/pnfs.c          |   54 ++++++++++++++++++++++++------------------------
>  include/linux/nfs_fs.h |    1 -
>  3 files changed, 28 insertions(+), 29 deletions(-)
> 
> diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
> index cdec539..e51f882 100644
> --- a/fs/nfs/inode.c
> +++ b/fs/nfs/inode.c
> @@ -1417,7 +1417,7 @@ static void pnfs_init_once(struct nfs_inode *nfsi)
>  {
>  #ifdef CONFIG_NFS_V4_1
>  	init_waitqueue_head(&nfsi->lo_waitq);
> -	spin_lock_init(&nfsi->lo_lock);
> +	spin_lock_init(&nfsi->vfs_inode.i_lock);
>  	seqlock_init(&nfsi->layout.seqlock);
>  	INIT_LIST_HEAD(&nfsi->layout.lo_layouts);
>  	INIT_LIST_HEAD(&nfsi->layout.segs);
> diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
> index 7d322c9..4afa4cf 100644
> --- a/fs/nfs/pnfs.c
> +++ b/fs/nfs/pnfs.c
> @@ -152,15 +152,15 @@ void
>  pnfs_need_layoutcommit(struct nfs_inode *nfsi, struct nfs_open_context *ctx)
>  {
>  	dprintk("%s: has_layout=%d ctx=%p\n", __func__, has_layout(nfsi), ctx);
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&nfsi->vfs_inode.i_lock);
>  	if (has_layout(nfsi) && !layoutcommit_needed(nfsi)) {
>  		nfsi->layout.lo_cred = get_rpccred(ctx->state->owner->so_cred);
>  		nfsi->change_attr++;
> -		spin_unlock(&nfsi->lo_lock);
> +		spin_unlock(&nfsi->vfs_inode.i_lock);
>  		dprintk("%s: Set layoutcommit\n", __func__);
>  		return;
>  	}
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&nfsi->vfs_inode.i_lock);
>  }
>  
>  /* Update last_write_offset for layoutcommit.
> @@ -173,7 +173,7 @@ pnfs_update_last_write(struct nfs_inode *nfsi, loff_t offset, size_t extent)
>  {
>  	loff_t end_pos;
>  
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&nfsi->vfs_inode.i_lock);
>  	if (offset < nfsi->layout.pnfs_write_begin_pos)
>  		nfsi->layout.pnfs_write_begin_pos = offset;
>  	end_pos = offset + extent - 1; /* I'm being inclusive */
> @@ -185,7 +185,7 @@ pnfs_update_last_write(struct nfs_inode *nfsi, loff_t offset, size_t extent)
>  		(unsigned long) offset ,
>  		(unsigned long) nfsi->layout.pnfs_write_begin_pos,
>  		(unsigned long) nfsi->layout.pnfs_write_end_pos);
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&nfsi->vfs_inode.i_lock);
>  }
>  
>  /* Unitialize a mountpoint in a layout driver */
> @@ -315,7 +315,7 @@ pnfs_unregister_layoutdriver(struct pnfs_layoutdriver_type *ld_type)
>   */
>  #if defined(CONFIG_SMP)
>  #define BUG_ON_UNLOCKED_LO(lo) \
> -	BUG_ON(!spin_is_locked(&PNFS_NFS_INODE(lo)->lo_lock))
> +	BUG_ON(!spin_is_locked(&PNFS_INODE(lo)->i_lock))
>  #else /* CONFIG_SMP */
>  #define BUG_ON_UNLOCKED_LO(lo) do {} while (0)
>  #endif /* CONFIG_SMP */
> @@ -329,9 +329,9 @@ get_lock_current_layout(struct nfs_inode *nfsi)
>  	struct pnfs_layout_type *lo;
>  
>  	lo = &nfsi->layout;
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&nfsi->vfs_inode.i_lock);
>  	if (!lo->ld_data) {
> -		spin_unlock(&nfsi->lo_lock);
> +		spin_unlock(&nfsi->vfs_inode.i_lock);
>  		return NULL;
>  	}
>  
> @@ -345,7 +345,7 @@ get_lock_current_layout(struct nfs_inode *nfsi)
>  static inline void
>  put_unlock_current_layout(struct pnfs_layout_type *lo)
>  {
> -	struct nfs_inode *nfsi = PNFS_NFS_INODE(lo);
> +	struct inode *inode = PNFS_INODE(lo);
>  	struct nfs_client *clp;
>  
>  	BUG_ON_UNLOCKED_LO(lo);
> @@ -360,12 +360,12 @@ put_unlock_current_layout(struct pnfs_layout_type *lo)
>  		lo->ld_data = NULL;
>  
>  		/* Unlist the layout. */
> -		clp = NFS_SERVER(&nfsi->vfs_inode)->nfs_client;
> +		clp = NFS_SERVER(inode)->nfs_client;
>  		spin_lock(&clp->cl_lock);
>  		list_del_init(&lo->lo_layouts);
>  		spin_unlock(&clp->cl_lock);
>  	}
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&inode->i_lock);
>  }
>  
>  void
> @@ -374,7 +374,7 @@ pnfs_layout_release(struct pnfs_layout_type *lo,
>  {
>  	struct nfs_inode *nfsi = PNFS_NFS_INODE(lo);
>  
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&nfsi->vfs_inode.i_lock);
>  	if (range)
>  		pnfs_free_layout(lo, range);
>  	put_unlock_current_layout(lo);
> @@ -446,9 +446,9 @@ put_lseg(struct pnfs_layout_segment *lseg)
>  		atomic_read(&lseg->kref.refcount), lseg->valid);
>  	do_wake_up = !lseg->valid;
>  	nfsi = PNFS_NFS_INODE(lseg->layout);
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&nfsi->vfs_inode.i_lock);
>  	kref_put(&lseg->kref, destroy_lseg);
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&nfsi->vfs_inode.i_lock);
>  	if (do_wake_up)
>  		wake_up(&nfsi->lo_waitq);
>  }
> @@ -686,7 +686,7 @@ pnfs_return_layout_barrier(struct nfs_inode *nfsi,
>  	struct pnfs_layout_segment *lseg;
>  	bool ret = false;
>  
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&nfsi->vfs_inode.i_lock);
>  	list_for_each_entry (lseg, &nfsi->layout.segs, fi_list) {
>  		if (!should_free_lseg(lseg, range))
>  			continue;
> @@ -698,7 +698,7 @@ pnfs_return_layout_barrier(struct nfs_inode *nfsi,
>  			ret = true;
>  		}
>  	}
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&nfsi->vfs_inode.i_lock);
>  	dprintk("%s:Return %d\n", __func__, ret);
>  	return ret;
>  }
> @@ -772,12 +772,12 @@ _pnfs_return_layout(struct inode *ino, struct nfs4_pnfs_layout_segment *range,
>  		/* unlock w/o put rebalanced by eventual call to
>  		 * pnfs_layout_release
>  		 */
> -		spin_unlock(&nfsi->lo_lock);
> +		spin_unlock(&ino->i_lock);
>  
>  		if (pnfs_return_layout_barrier(nfsi, &arg)) {
>  			if (stateid) { /* callback */
>  				status = -EAGAIN;
> -				spin_lock(&nfsi->lo_lock);
> +				spin_lock(&ino->i_lock);
>  				put_unlock_current_layout(lo);
>  				goto out;
>  			}
> @@ -922,7 +922,7 @@ static int pnfs_wait_schedule(void *word)
>  /*
>   * get, possibly allocate, and lock current_layout
>   *
> - * Note: If successful, nfsi->lo_lock is taken and the caller
> + * Note: If successful, ino->i_lock is taken and the caller
>   * must put and unlock current_layout by using put_unlock_current_layout()
>   * when the returned layout is released.
>   */
> @@ -959,7 +959,7 @@ get_lock_alloc_layout(struct inode *ino)
>  			struct nfs_client *clp = NFS_SERVER(ino)->nfs_client;
>  
>  			/* must grab the layout lock before the client lock */
> -			spin_lock(&nfsi->lo_lock);
> +			spin_lock(&ino->i_lock);
>  
>  			spin_lock(&clp->cl_lock);
>  			if (list_empty(&lo->lo_layouts))
> @@ -1111,7 +1111,7 @@ _pnfs_update_layout(struct inode *ino,
>  	}
>  
>  	/* Lose lock, but not reference, match this with pnfs_layout_release */
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&ino->i_lock);
>  
>  	get_layout(ino, ctx, &arg, lsegpp, lo);
>  out:
> @@ -1235,7 +1235,7 @@ pnfs_layout_process(struct nfs4_pnfs_layoutget *lgp)
>  	struct pnfs_layout_type *lo = lgp->lo;
>  	struct nfs4_pnfs_layoutget_res *res = &lgp->res;
>  	struct pnfs_layout_segment *lseg;
> -	struct nfs_inode *nfsi = PNFS_NFS_INODE(lo);
> +	struct inode *ino = PNFS_INODE(lo);
>  	int status = 0;
>  
>  	/* Inject layout blob into I/O device driver */
> @@ -1257,7 +1257,7 @@ pnfs_layout_process(struct nfs4_pnfs_layoutget *lgp)
>  		*lgp->lsegpp = lseg;
>  	}
>  
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&ino->i_lock);
>  	pnfs_insert_layout(lo, lseg);
>  
>  	if (res->return_on_close) {
> @@ -1268,7 +1268,7 @@ pnfs_layout_process(struct nfs4_pnfs_layoutget *lgp)
>  
>  	/* Done processing layoutget. Set the layout stateid */
>  	pnfs_set_layout_stateid(lo, &res->stateid);
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&ino->i_lock);
>  out:
>  	return status;
>  }
> @@ -1785,9 +1785,9 @@ pnfs_layoutcommit_inode(struct inode *inode, int sync)
>  	if (!data)
>  		return -ENOMEM;
>  
> -	spin_lock(&nfsi->lo_lock);
> +	spin_lock(&inode->i_lock);
>  	if (!layoutcommit_needed(nfsi)) {
> -		spin_unlock(&nfsi->lo_lock);
> +		spin_unlock(&inode->i_lock);
>  		goto out_free;
>  	}
>  
> @@ -1802,7 +1802,7 @@ pnfs_layoutcommit_inode(struct inode *inode, int sync)
>  	nfsi->layout.lo_cred = NULL;
>  	pnfs_get_layout_stateid(&data->args.stateid, &nfsi->layout);
>  
> -	spin_unlock(&nfsi->lo_lock);
> +	spin_unlock(&inode->i_lock);
>  
>  	/* Set up layout commit args */
>  	status = pnfs_layoutcommit_setup(inode, data, write_begin_pos,
> diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
> index 41026cb..a60d880 100644
> --- a/include/linux/nfs_fs.h
> +++ b/include/linux/nfs_fs.h
> @@ -206,7 +206,6 @@ struct nfs_inode {
>  	/* pNFS layout information */
>  #if defined(CONFIG_NFS_V4_1)
>  	wait_queue_head_t lo_waitq;
> -	spinlock_t lo_lock;
>  	struct pnfs_layout_type layout;
>  #endif /* CONFIG_NFS_V4_1 */
>  #endif /* CONFIG_NFS_V4*/


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-06-15 21:06 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-15  7:59 [PATCH 1/1] pnfs-submit: Remove lo_lock and use i_lock instead Fred Isaman
2010-06-15 21:06 ` Benny Halevy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox