diff --git a/fs/hmdfs/inode_remote.c b/fs/hmdfs/inode_remote.c index 73d459bf45337dd24577acf9e0195228717b51e8..c9bd5275c8fdd5c365ae414b6544542be519d966 100644 --- a/fs/hmdfs/inode_remote.c +++ b/fs/hmdfs/inode_remote.c @@ -121,12 +121,13 @@ static void hmdfs_remote_readdir_work(struct work_struct *work) hmdfs_d(dentry)->async_readdir_in_progress = 0; hmdfs_revert_creds(old_cred); - dput(dentry); - peer_put(con); spin_lock(&con->sbi->async_readdir_work_lock); list_del(&rw->head); empty = list_empty(&con->sbi->async_readdir_work_list); spin_unlock(&con->sbi->async_readdir_work_lock); + + dput(dentry); + peer_put(con); kfree(rw); if (empty)