Merge tag 'nfs-for-5.7-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client bugfix from Trond Myklebust: "Fix an ABBA spinlock issue in pnfs_update_layout()" * tag 'nfs-for-5.7-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFS: Fix an ABBA spinlock issue in pnfs_update_layout()
This commit is contained in:
+2
-1
@@ -2023,6 +2023,7 @@ lookup_again:
|
||||
goto lookup_again;
|
||||
}
|
||||
|
||||
spin_unlock(&ino->i_lock);
|
||||
first = true;
|
||||
status = nfs4_select_rw_stateid(ctx->state,
|
||||
iomode == IOMODE_RW ? FMODE_WRITE : FMODE_READ,
|
||||
@@ -2032,12 +2033,12 @@ lookup_again:
|
||||
trace_pnfs_update_layout(ino, pos, count,
|
||||
iomode, lo, lseg,
|
||||
PNFS_UPDATE_LAYOUT_INVALID_OPEN);
|
||||
spin_unlock(&ino->i_lock);
|
||||
nfs4_schedule_stateid_recovery(server, ctx->state);
|
||||
pnfs_clear_first_layoutget(lo);
|
||||
pnfs_put_layout_hdr(lo);
|
||||
goto lookup_again;
|
||||
}
|
||||
spin_lock(&ino->i_lock);
|
||||
} else {
|
||||
nfs4_stateid_copy(&stateid, &lo->plh_stateid);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user