diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-26 14:08:47 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-26 14:08:47 -0400 |
| commit | 8ff64b539bfd998792614481ccb67139b97075ef (patch) | |
| tree | 76bdba9fde912de766112a1e5476eec97850e9c5 /fs/gfs2/util.c | |
| parent | 61a9dc26d3d4ef61b0ead9930561c9ce0efa1919 (diff) | |
| parent | df3647b24510e23523f81a77bb179cd9ae3d613b (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:
GFS2: Fix freeze issue
Fix a minor bug in the previous patch
GFS2: Clean up of glops.c
GFS2: Fix locking bug in failed shared to exclusive conversion
GFS2: Pagecache usage optimization on GFS2
GFS2: fix sparse warning: Should it be static?
GFS2: fix sparse warnings: constant is so big it is ...
GFS2: Support quota/noquota mount arguments
GFS2: Fix alignment issue and tidy gfs2_bitfit
GFS2: Add a "demote a glock" interface to sysfs
GFS2: Expose UUID via sysfs/uevent
GFS2: Support generation of discard requests
GFS2: Fix deadlock on journal flush
GFS2: Fix error path ref counting for root inode
GFS2: Remove unused field from glock
GFS2: Merge lock_dlm module into GFS2
GFS2: Remove "double" locking in quota
GFS2: change gfs2_quota_scan into a shrinker
GFS2: Bring back lvb-related stuff to lock_nolock to support quotas
GFS2: Fix remount argument parsing
Diffstat (limited to 'fs/gfs2/util.c')
| -rw-r--r-- | fs/gfs2/util.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/gfs2/util.c b/fs/gfs2/util.c index 374f50e95496..9d12b1118ba0 100644 --- a/fs/gfs2/util.c +++ b/fs/gfs2/util.c | |||
| @@ -13,7 +13,6 @@ | |||
| 13 | #include <linux/buffer_head.h> | 13 | #include <linux/buffer_head.h> |
| 14 | #include <linux/crc32.h> | 14 | #include <linux/crc32.h> |
| 15 | #include <linux/gfs2_ondisk.h> | 15 | #include <linux/gfs2_ondisk.h> |
| 16 | #include <linux/lm_interface.h> | ||
| 17 | #include <asm/uaccess.h> | 16 | #include <asm/uaccess.h> |
| 18 | 17 | ||
| 19 | #include "gfs2.h" | 18 | #include "gfs2.h" |
| @@ -35,6 +34,8 @@ void gfs2_assert_i(struct gfs2_sbd *sdp) | |||
| 35 | 34 | ||
| 36 | int gfs2_lm_withdraw(struct gfs2_sbd *sdp, char *fmt, ...) | 35 | int gfs2_lm_withdraw(struct gfs2_sbd *sdp, char *fmt, ...) |
| 37 | { | 36 | { |
| 37 | struct lm_lockstruct *ls = &sdp->sd_lockstruct; | ||
| 38 | const struct lm_lockops *lm = ls->ls_ops; | ||
| 38 | va_list args; | 39 | va_list args; |
| 39 | 40 | ||
| 40 | if (test_and_set_bit(SDF_SHUTDOWN, &sdp->sd_flags)) | 41 | if (test_and_set_bit(SDF_SHUTDOWN, &sdp->sd_flags)) |
| @@ -47,8 +48,12 @@ int gfs2_lm_withdraw(struct gfs2_sbd *sdp, char *fmt, ...) | |||
| 47 | fs_err(sdp, "about to withdraw this file system\n"); | 48 | fs_err(sdp, "about to withdraw this file system\n"); |
| 48 | BUG_ON(sdp->sd_args.ar_debug); | 49 | BUG_ON(sdp->sd_args.ar_debug); |
| 49 | 50 | ||
| 50 | fs_err(sdp, "telling LM to withdraw\n"); | 51 | kobject_uevent(&sdp->sd_kobj, KOBJ_OFFLINE); |
| 51 | gfs2_withdraw_lockproto(&sdp->sd_lockstruct); | 52 | |
| 53 | if (lm->lm_unmount) { | ||
| 54 | fs_err(sdp, "telling LM to unmount\n"); | ||
| 55 | lm->lm_unmount(sdp); | ||
| 56 | } | ||
| 52 | fs_err(sdp, "withdrawn\n"); | 57 | fs_err(sdp, "withdrawn\n"); |
| 53 | dump_stack(); | 58 | dump_stack(); |
| 54 | 59 | ||
