From: Andy Adamson <andros@xxxxxxxxxx> So remove test_ref Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> --- fs/nfs/pnfs.c | 30 ++++++++++-------------------- 1 files changed, 10 insertions(+), 20 deletions(-) diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index 118d34c..d4ffd1c 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -997,9 +997,7 @@ has_matching_lseg(struct pnfs_layout_segment *lseg, */ static struct pnfs_layout_segment * pnfs_has_layout(struct pnfs_layout_type *lo, - struct nfs4_pnfs_layout_segment *range, - bool take_ref, - bool only_valid) + struct nfs4_pnfs_layout_segment *range) { struct pnfs_layout_segment *lseg, *ret = NULL; @@ -1007,28 +1005,24 @@ pnfs_has_layout(struct pnfs_layout_type *lo, BUG_ON_UNLOCKED_LO(lo); list_for_each_entry (lseg, &lo->segs, fi_list) { - if (has_matching_lseg(lseg, range) && - (lseg->valid || !only_valid)) { + if (has_matching_lseg(lseg, range)) { ret = lseg; - if (take_ref) - get_lseg(ret); + get_lseg(ret); break; } if (cmp_layout(range, &lseg->range) > 0) break; } - dprintk("%s:Return lseg %p take_ref %d ref %d valid %d\n", - __func__, ret, take_ref, - ret ? atomic_read(&ret->kref.refcount) : 0, + dprintk("%s:Return lseg %p ref %d valid %d\n", + __func__, ret, ret ? atomic_read(&ret->kref.refcount) : 0, ret ? ret->valid : 0); return ret; } /* Update the file's layout for the given range and iomode. * Layout is retreived from the server if needed. - * If lsegpp is given, the appropriate layout segment is referenced and - * returned to the caller. + * The appropriate layout segment is referenced and returned to the caller. */ void _pnfs_update_layout(struct inode *ino, @@ -1046,10 +1040,8 @@ _pnfs_update_layout(struct inode *ino, struct nfs_inode *nfsi = NFS_I(ino); struct pnfs_layout_type *lo; struct pnfs_layout_segment *lseg = NULL; - bool take_ref = (lsegpp != NULL); - if (take_ref) - *lsegpp = NULL; + *lsegpp = NULL; lo = nfs_lock_alloc_layout(ino); if (lo == NULL) { dprintk("%s ERROR: can't get pnfs_layout_type\n", __func__); @@ -1057,10 +1049,9 @@ _pnfs_update_layout(struct inode *ino, } /* Check to see if the layout for the given range already exists */ - lseg = pnfs_has_layout(lo, &arg, take_ref, !take_ref); + lseg = pnfs_has_layout(lo, &arg); if (lseg && !lseg->valid) { - if (take_ref) - put_lseg_locked(lseg); + put_lseg_locked(lseg); /* someone is cleaning the layout */ lseg = NULL; goto out_unlock; @@ -1099,8 +1090,7 @@ out: nfsi->layout->pnfs_layout_state, lseg); return; out_unlock: - if (lsegpp) - *lsegpp = lseg; + *lsegpp = lseg; spin_unlock(&ino->i_lock); goto out; } -- 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html