diff options
-rw-r--r-- | fs/cifs/file.c | 2 | ||||
-rw-r--r-- | fs/cifs/inode.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index da4f5e10b3cc..14a1c72ced92 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -489,8 +489,10 @@ int cifs_close(struct inode *inode, struct file *file) | |||
489 | the struct would be in each open file, | 489 | the struct would be in each open file, |
490 | but this should give enough time to | 490 | but this should give enough time to |
491 | clear the socket */ | 491 | clear the socket */ |
492 | write_unlock(&file->f_owner.lock); | ||
492 | cERROR(1,("close with pending writes")); | 493 | cERROR(1,("close with pending writes")); |
493 | msleep(timeout); | 494 | msleep(timeout); |
495 | write_lock(&file->f_owner.lock); | ||
494 | timeout *= 4; | 496 | timeout *= 4; |
495 | } | 497 | } |
496 | write_unlock(&file->f_owner.lock); | 498 | write_unlock(&file->f_owner.lock); |
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index ffc7305841b3..f0586c0d7bdb 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -279,6 +279,7 @@ static int get_sfu_uid_mode(struct inode * inode, | |||
279 | return (int)rc; | 279 | return (int)rc; |
280 | else if (rc > 3) { | 280 | else if (rc > 3) { |
281 | mode = le32_to_cpu(*((__le32 *)ea_value)); | 281 | mode = le32_to_cpu(*((__le32 *)ea_value)); |
282 | inode->i_mode &= ~SFBITS_MASK; | ||
282 | cFYI(1,("special bits 0%o org mode 0%o", mode, inode->i_mode)); | 283 | cFYI(1,("special bits 0%o org mode 0%o", mode, inode->i_mode)); |
283 | inode->i_mode = (mode & SFBITS_MASK) | inode->i_mode; | 284 | inode->i_mode = (mode & SFBITS_MASK) | inode->i_mode; |
284 | cFYI(1,("special mode bits 0%o", mode)); | 285 | cFYI(1,("special mode bits 0%o", mode)); |