mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 04:40:51 +07:00
ceph: fix possible double-free of mds request reference
Clear pointer to mds request after dropping the reference to ensure we don't drop it again, as there is at least one error path through this function that does not reset fi->last_readdir to a new value. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
parent
d96d60498f
commit
393f662096
@ -288,8 +288,10 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir)
|
||||
CEPH_MDS_OP_LSSNAP : CEPH_MDS_OP_READDIR;
|
||||
|
||||
/* discard old result, if any */
|
||||
if (fi->last_readdir)
|
||||
if (fi->last_readdir) {
|
||||
ceph_mdsc_put_request(fi->last_readdir);
|
||||
fi->last_readdir = NULL;
|
||||
}
|
||||
|
||||
/* requery frag tree, as the frag topology may have changed */
|
||||
frag = ceph_choose_frag(ceph_inode(inode), frag, NULL, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user