瀏覽代碼

CIFS: Fix wrong restart readdir for SMB1

The existing code calls server->ops->close() that is not
right. This causes XFS test generic/310 to fail. Fix this
by using server->ops->closedir() function.

Cc: <stable@vger.kernel.org> # v3.7+
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
Pavel Shilovsky 11 年之前
父節點
當前提交
f736906a76
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      fs/cifs/readdir.c

+ 2 - 2
fs/cifs/readdir.c

@@ -596,8 +596,8 @@ find_cifs_entry(const unsigned int xid, struct cifs_tcon *tcon, loff_t pos,
 		if (server->ops->dir_needs_close(cfile)) {
 		if (server->ops->dir_needs_close(cfile)) {
 			cfile->invalidHandle = true;
 			cfile->invalidHandle = true;
 			spin_unlock(&cifs_file_list_lock);
 			spin_unlock(&cifs_file_list_lock);
-			if (server->ops->close)
-				server->ops->close(xid, tcon, &cfile->fid);
+			if (server->ops->close_dir)
+				server->ops->close_dir(xid, tcon, &cfile->fid);
 		} else
 		} else
 			spin_unlock(&cifs_file_list_lock);
 			spin_unlock(&cifs_file_list_lock);
 		if (cfile->srch_inf.ntwrk_buf_start) {
 		if (cfile->srch_inf.ntwrk_buf_start) {