Prechádzať zdrojové kódy

[CIFS] Missing part of previous patch

Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French 20 rokov pred
rodič
commit
c119b87d59
2 zmenil súbory, kde vykonal 3 pridanie a 0 odobranie
  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));