diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2009-05-22 14:25:34 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-05-22 14:25:34 -0400 |
commit | e4b636366c00738b9609cda307014d71b1225b7f (patch) | |
tree | 760b67b3624eda62e943e48ce93635c30a5b47bf /fs/cifs/cifsfs.c | |
parent | b9ed7252d219c1c663944bf03846eabb515dbe75 (diff) | |
parent | 279e677faa775ad16e75c32e1bf4a37f8158bc61 (diff) |
Merge branch 'master' into for-2.6.31
Conflicts:
drivers/block/hd.c
drivers/block/mg_disk.c
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r-- | fs/cifs/cifsfs.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 0d6d8b573652..5e6d35804d73 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/delay.h> | 35 | #include <linux/delay.h> |
36 | #include <linux/kthread.h> | 36 | #include <linux/kthread.h> |
37 | #include <linux/freezer.h> | 37 | #include <linux/freezer.h> |
38 | #include <linux/smp_lock.h> | ||
38 | #include "cifsfs.h" | 39 | #include "cifsfs.h" |
39 | #include "cifspdu.h" | 40 | #include "cifspdu.h" |
40 | #define DECLARE_GLOBALS_HERE | 41 | #define DECLARE_GLOBALS_HERE |
@@ -530,6 +531,7 @@ static void cifs_umount_begin(struct super_block *sb) | |||
530 | if (tcon == NULL) | 531 | if (tcon == NULL) |
531 | return; | 532 | return; |
532 | 533 | ||
534 | lock_kernel(); | ||
533 | read_lock(&cifs_tcp_ses_lock); | 535 | read_lock(&cifs_tcp_ses_lock); |
534 | if (tcon->tc_count == 1) | 536 | if (tcon->tc_count == 1) |
535 | tcon->tidStatus = CifsExiting; | 537 | tcon->tidStatus = CifsExiting; |
@@ -548,6 +550,7 @@ static void cifs_umount_begin(struct super_block *sb) | |||
548 | } | 550 | } |
549 | /* BB FIXME - finish add checks for tidStatus BB */ | 551 | /* BB FIXME - finish add checks for tidStatus BB */ |
550 | 552 | ||
553 | unlock_kernel(); | ||
551 | return; | 554 | return; |
552 | } | 555 | } |
553 | 556 | ||
@@ -599,8 +602,7 @@ cifs_get_sb(struct file_system_type *fs_type, | |||
599 | 602 | ||
600 | rc = cifs_read_super(sb, data, dev_name, flags & MS_SILENT ? 1 : 0); | 603 | rc = cifs_read_super(sb, data, dev_name, flags & MS_SILENT ? 1 : 0); |
601 | if (rc) { | 604 | if (rc) { |
602 | up_write(&sb->s_umount); | 605 | deactivate_locked_super(sb); |
603 | deactivate_super(sb); | ||
604 | return rc; | 606 | return rc; |
605 | } | 607 | } |
606 | sb->s_flags |= MS_ACTIVE; | 608 | sb->s_flags |= MS_ACTIVE; |