Bläddra i källkod

[CIFS] Missing part of previous patch

Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French 19 år sedan
förälder
incheckning
c119b87d59
2 ändrade filer med 3 tillägg och 0 borttagningar
  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));