diff options
author | Christoph Hellwig <hch@lst.de> | 2009-06-08 09:37:16 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@brick.lst.de> | 2009-06-08 09:37:16 -0400 |
commit | 8b5403a6d772d340541cfb30a668fde119c40ac1 (patch) | |
tree | 0a81b174351ca56555d7ccc53ecd76c0b27edcee /fs/xfs/linux-2.6 | |
parent | b0710ccc6d9fa8fb908b5f6d1b0782a09d80e24f (diff) |
xfs: remove SYNC_BDFLUSH
SYNC_BDFLUSH is a leftover from IRIX and rather misnamed for todays
code. Make xfs_sync_fsdata and xfs_dq_sync use the SYNC_TRYLOCK flag
for not blocking on logs just as the inode sync code already does.
For xfs_sync_fsdata it's a trivial 1:1 replacement, but for xfs_qm_sync
I use the opportunity to decouple the non-blocking lock case from the
different flushing modes, similar to the inode sync code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Diffstat (limited to 'fs/xfs/linux-2.6')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_sync.c | 8 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_sync.h | 5 |
2 files changed, 6 insertions, 7 deletions
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 32abd96b1095..b619d6b8ca43 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c | |||
@@ -353,7 +353,7 @@ xfs_sync_fsdata( | |||
353 | * If this is xfssyncd() then only sync the superblock if we can | 353 | * If this is xfssyncd() then only sync the superblock if we can |
354 | * lock it without sleeping and it is not pinned. | 354 | * lock it without sleeping and it is not pinned. |
355 | */ | 355 | */ |
356 | if (flags & SYNC_BDFLUSH) { | 356 | if (flags & SYNC_TRYLOCK) { |
357 | ASSERT(!(flags & SYNC_WAIT)); | 357 | ASSERT(!(flags & SYNC_WAIT)); |
358 | 358 | ||
359 | bp = xfs_getsb(mp, XFS_BUF_TRYLOCK); | 359 | bp = xfs_getsb(mp, XFS_BUF_TRYLOCK); |
@@ -418,7 +418,7 @@ xfs_quiesce_data( | |||
418 | 418 | ||
419 | /* push non-blocking */ | 419 | /* push non-blocking */ |
420 | xfs_sync_data(mp, 0); | 420 | xfs_sync_data(mp, 0); |
421 | xfs_qm_sync(mp, SYNC_BDFLUSH); | 421 | xfs_qm_sync(mp, SYNC_TRYLOCK); |
422 | xfs_filestream_flush(mp); | 422 | xfs_filestream_flush(mp); |
423 | 423 | ||
424 | /* push and block */ | 424 | /* push and block */ |
@@ -568,8 +568,8 @@ xfs_sync_worker( | |||
568 | xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); | 568 | xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); |
569 | xfs_reclaim_inodes(mp, XFS_IFLUSH_DELWRI_ELSE_ASYNC); | 569 | xfs_reclaim_inodes(mp, XFS_IFLUSH_DELWRI_ELSE_ASYNC); |
570 | /* dgc: errors ignored here */ | 570 | /* dgc: errors ignored here */ |
571 | error = xfs_qm_sync(mp, SYNC_BDFLUSH); | 571 | error = xfs_qm_sync(mp, SYNC_TRYLOCK); |
572 | error = xfs_sync_fsdata(mp, SYNC_BDFLUSH); | 572 | error = xfs_sync_fsdata(mp, SYNC_TRYLOCK); |
573 | if (xfs_log_need_covered(mp)) | 573 | if (xfs_log_need_covered(mp)) |
574 | error = xfs_commit_dummy_trans(mp, XFS_LOG_FORCE); | 574 | error = xfs_commit_dummy_trans(mp, XFS_LOG_FORCE); |
575 | } | 575 | } |
diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index bda33a03e12b..2a10301c99c7 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h | |||
@@ -29,9 +29,8 @@ typedef struct xfs_sync_work { | |||
29 | struct completion *w_completion; | 29 | struct completion *w_completion; |
30 | } xfs_sync_work_t; | 30 | } xfs_sync_work_t; |
31 | 31 | ||
32 | #define SYNC_WAIT 0x0004 /* wait for i/o to complete */ | 32 | #define SYNC_WAIT 0x0001 /* wait for i/o to complete */ |
33 | #define SYNC_BDFLUSH 0x0008 /* BDFLUSH is calling -- don't block */ | 33 | #define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */ |
34 | #define SYNC_TRYLOCK 0x0020 /* only try to lock inodes */ | ||
35 | 34 | ||
36 | int xfs_syncd_init(struct xfs_mount *mp); | 35 | int xfs_syncd_init(struct xfs_mount *mp); |
37 | void xfs_syncd_stop(struct xfs_mount *mp); | 36 | void xfs_syncd_stop(struct xfs_mount *mp); |