mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
fs/9p: destroy fid on failed remove
9P spec says: "It is correct to consider remove to be a clunk with the side effect of removing the file if permissions allow. " So even if remove fails we need to destroy the fid. Without this patch an rmdir on a directory with contents leave the new cloned directory fid fid attached to fidlist. On umount we dump the fids on the fidlist ~# rmdir /mnt2/test4/ rmdir: failed to remove `/mnt2/test4/': Directory not empty ~# umount /mnt2/ ~# dmesg [ 228.474323] Found fid 3 not clunked Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
parent
a534c8d15b
commit
0b1208b1aa
@ -1240,9 +1240,8 @@ int p9_client_remove(struct p9_fid *fid)
|
||||
P9_DPRINTK(P9_DEBUG_9P, "<<< RREMOVE fid %d\n", fid->fid);
|
||||
|
||||
p9_free_req(clnt, req);
|
||||
p9_fid_destroy(fid);
|
||||
|
||||
error:
|
||||
p9_fid_destroy(fid);
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL(p9_client_remove);
|
||||
|
Loading…
Reference in New Issue
Block a user