diff options
| author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 12:13:20 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 12:13:20 -0500 |
| commit | 1c1afa3c053d4ccdf44e5a4e159005cdfd48bfc6 (patch) | |
| tree | 3e686ad4cf1ae2300e7190ff83afc3f3dd4ba740 /fs/gfs2/ops_super.c | |
| parent | 0a01707b289853f56d1c000057b27e243c039722 (diff) | |
| parent | ac33d0710595579e3cfca42dde2257eb0b123f6d (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
* master.kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (73 commits)
[DLM] Clean up lowcomms
[GFS2] Change gfs2_fsync() to use write_inode_now()
[GFS2] Fix indent in recovery.c
[GFS2] Don't flush everything on fdatasync
[GFS2] Add a comment about reading the super block
[GFS2] Mount problem with the GFS2 code
[GFS2] Remove gfs2_check_acl()
[DLM] fix format warnings in rcom.c and recoverd.c
[GFS2] lock function parameter
[DLM] don't accept replies to old recovery messages
[DLM] fix size of STATUS_REPLY message
[GFS2] fs/gfs2/log.c:log_bmap() fix printk format warning
[DLM] fix add_requestqueue checking nodes list
[GFS2] Fix recursive locking in gfs2_getattr
[GFS2] Fix recursive locking in gfs2_permission
[GFS2] Reduce number of arguments to meta_io.c:getbuf()
[GFS2] Move gfs2_meta_syncfs() into log.c
[GFS2] Fix journal flush problem
[GFS2] mark_inode_dirty after write to stuffed file
[GFS2] Fix glock ordering on inode creation
...
Diffstat (limited to 'fs/gfs2/ops_super.c')
| -rw-r--r-- | fs/gfs2/ops_super.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/gfs2/ops_super.c b/fs/gfs2/ops_super.c index b47d9598c047..7685b46f934b 100644 --- a/fs/gfs2/ops_super.c +++ b/fs/gfs2/ops_super.c | |||
| @@ -157,7 +157,8 @@ static void gfs2_write_super(struct super_block *sb) | |||
| 157 | static int gfs2_sync_fs(struct super_block *sb, int wait) | 157 | static int gfs2_sync_fs(struct super_block *sb, int wait) |
| 158 | { | 158 | { |
| 159 | sb->s_dirt = 0; | 159 | sb->s_dirt = 0; |
| 160 | gfs2_log_flush(sb->s_fs_info, NULL); | 160 | if (wait) |
| 161 | gfs2_log_flush(sb->s_fs_info, NULL); | ||
| 161 | return 0; | 162 | return 0; |
| 162 | } | 163 | } |
| 163 | 164 | ||
| @@ -215,7 +216,7 @@ static int gfs2_statfs(struct dentry *dentry, struct kstatfs *buf) | |||
| 215 | { | 216 | { |
| 216 | struct super_block *sb = dentry->d_inode->i_sb; | 217 | struct super_block *sb = dentry->d_inode->i_sb; |
| 217 | struct gfs2_sbd *sdp = sb->s_fs_info; | 218 | struct gfs2_sbd *sdp = sb->s_fs_info; |
| 218 | struct gfs2_statfs_change sc; | 219 | struct gfs2_statfs_change_host sc; |
| 219 | int error; | 220 | int error; |
| 220 | 221 | ||
| 221 | if (gfs2_tune_get(sdp, gt_statfs_slow)) | 222 | if (gfs2_tune_get(sdp, gt_statfs_slow)) |
| @@ -293,8 +294,6 @@ static void gfs2_clear_inode(struct inode *inode) | |||
| 293 | */ | 294 | */ |
| 294 | if (inode->i_private) { | 295 | if (inode->i_private) { |
| 295 | struct gfs2_inode *ip = GFS2_I(inode); | 296 | struct gfs2_inode *ip = GFS2_I(inode); |
| 296 | gfs2_glock_inode_squish(inode); | ||
| 297 | gfs2_assert(inode->i_sb->s_fs_info, ip->i_gl->gl_state == LM_ST_UNLOCKED); | ||
| 298 | ip->i_gl->gl_object = NULL; | 297 | ip->i_gl->gl_object = NULL; |
| 299 | gfs2_glock_schedule_for_reclaim(ip->i_gl); | 298 | gfs2_glock_schedule_for_reclaim(ip->i_gl); |
| 300 | gfs2_glock_put(ip->i_gl); | 299 | gfs2_glock_put(ip->i_gl); |
| @@ -395,7 +394,7 @@ static void gfs2_delete_inode(struct inode *inode) | |||
| 395 | if (!inode->i_private) | 394 | if (!inode->i_private) |
| 396 | goto out; | 395 | goto out; |
| 397 | 396 | ||
| 398 | error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, LM_FLAG_TRY_1CB | GL_NOCACHE, &gh); | 397 | error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, LM_FLAG_TRY_1CB, &gh); |
| 399 | if (unlikely(error)) { | 398 | if (unlikely(error)) { |
| 400 | gfs2_glock_dq_uninit(&ip->i_iopen_gh); | 399 | gfs2_glock_dq_uninit(&ip->i_iopen_gh); |
| 401 | goto out; | 400 | goto out; |
| @@ -407,7 +406,7 @@ static void gfs2_delete_inode(struct inode *inode) | |||
| 407 | if (error) | 406 | if (error) |
| 408 | goto out_uninit; | 407 | goto out_uninit; |
| 409 | 408 | ||
| 410 | if (S_ISDIR(ip->i_di.di_mode) && | 409 | if (S_ISDIR(inode->i_mode) && |
| 411 | (ip->i_di.di_flags & GFS2_DIF_EXHASH)) { | 410 | (ip->i_di.di_flags & GFS2_DIF_EXHASH)) { |
| 412 | error = gfs2_dir_exhash_dealloc(ip); | 411 | error = gfs2_dir_exhash_dealloc(ip); |
| 413 | if (error) | 412 | if (error) |
