瀏覽代碼

[CIFS] Missing part of previous patch

Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French 20 年之前
父節點
當前提交
c119b87d59
共有 2 個文件被更改,包括 3 次插入0 次删除
  1. 2 0
      fs/cifs/file.c
  2. 1 0
      fs/cifs/inode.c

+ 2 - 0
fs/cifs/file.c

@@ -489,8 +489,10 @@ int cifs_close(struct inode *inode, struct file *file)
 					the struct would be in each open file,
 					the struct would be in each open file,
 					but this should give enough time to 
 					but this should give enough time to 
 					clear the socket */
 					clear the socket */
+					write_unlock(&file->f_owner.lock);
 					cERROR(1,("close with pending writes"));
 					cERROR(1,("close with pending writes"));
 					msleep(timeout);
 					msleep(timeout);
+					write_lock(&file->f_owner.lock);
 					timeout *= 4;
 					timeout *= 4;
 				} 
 				} 
 				write_unlock(&file->f_owner.lock);
 				write_unlock(&file->f_owner.lock);

+ 1 - 0
fs/cifs/inode.c

@@ -279,6 +279,7 @@ static int get_sfu_uid_mode(struct inode * inode,
 		return (int)rc;
 		return (int)rc;
 	else if (rc > 3) {
 	else if (rc > 3) {
 		mode = le32_to_cpu(*((__le32 *)ea_value));
 		mode = le32_to_cpu(*((__le32 *)ea_value));
+		inode->i_mode &= ~SFBITS_MASK; 
 		cFYI(1,("special bits 0%o org mode 0%o", mode, inode->i_mode));
 		cFYI(1,("special bits 0%o org mode 0%o", mode, inode->i_mode));
 		inode->i_mode = (mode &  SFBITS_MASK) | inode->i_mode;
 		inode->i_mode = (mode &  SFBITS_MASK) | inode->i_mode;
 		cFYI(1,("special mode bits 0%o", mode));
 		cFYI(1,("special mode bits 0%o", mode));