NFSv4.1: Minor optimisation in get_layout_by_fh_locked()
If the filehandles match, but the igrab() fails, or the layout is freed before we can get it, then just return NULL. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
27999f2530
commit
9a7fe9e890
1 changed files with 2 additions and 2 deletions
|
@ -127,13 +127,13 @@ static struct pnfs_layout_hdr * get_layout_by_fh_locked(struct nfs_client *clp,
|
||||||
continue;
|
continue;
|
||||||
ino = igrab(lo->plh_inode);
|
ino = igrab(lo->plh_inode);
|
||||||
if (!ino)
|
if (!ino)
|
||||||
continue;
|
break;
|
||||||
spin_lock(&ino->i_lock);
|
spin_lock(&ino->i_lock);
|
||||||
/* Is this layout in the process of being freed? */
|
/* Is this layout in the process of being freed? */
|
||||||
if (NFS_I(ino)->layout != lo) {
|
if (NFS_I(ino)->layout != lo) {
|
||||||
spin_unlock(&ino->i_lock);
|
spin_unlock(&ino->i_lock);
|
||||||
iput(ino);
|
iput(ino);
|
||||||
continue;
|
break;
|
||||||
}
|
}
|
||||||
pnfs_get_layout_hdr(lo);
|
pnfs_get_layout_hdr(lo);
|
||||||
spin_unlock(&ino->i_lock);
|
spin_unlock(&ino->i_lock);
|
||||||
|
|
Loading…
Add table
Reference in a new issue