mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
NFSv4.1/pNFS: Fix a race in initiate_file_draining()
Peng Tao points out that the call to pnfs_mark_matching_lsegs_return() could race with pnfs_put_lseg(), in which case the layout segment is cleared, but no layoutreturn will be sent. Fix is to replace the call to pnfs_mark_matching_lsegs_invalid(). Reported-by: Peng Tao <tao.peng@primarydata.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
10335556c9
commit
4b0934baf9
@ -216,11 +216,8 @@ static u32 initiate_file_draining(struct nfs_client *clp,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
if (pnfs_mark_matching_lsegs_invalid(lo, &free_me_list,
|
||||
if (pnfs_mark_matching_lsegs_return(lo, &free_me_list,
|
||||
&args->cbl_range)) {
|
||||
pnfs_mark_matching_lsegs_return(lo,
|
||||
&free_me_list,
|
||||
&args->cbl_range);
|
||||
rv = NFS4_OK;
|
||||
goto unlock;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user