|
|
@@ -365,7 +365,8 @@ pnfs_layout_remove_lseg(struct pnfs_layout_hdr *lo,
|
|
|
/* Matched by pnfs_get_layout_hdr in pnfs_layout_insert_lseg */
|
|
|
atomic_dec(&lo->plh_refcount);
|
|
|
if (list_empty(&lo->plh_segs)) {
|
|
|
- set_bit(NFS_LAYOUT_INVALID_STID, &lo->plh_flags);
|
|
|
+ if (atomic_read(&lo->plh_outstanding) == 0)
|
|
|
+ set_bit(NFS_LAYOUT_INVALID_STID, &lo->plh_flags);
|
|
|
clear_bit(NFS_LAYOUT_BULK_RECALL, &lo->plh_flags);
|
|
|
}
|
|
|
rpc_wake_up(&NFS_SERVER(inode)->roc_rpcwaitq);
|