diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2012-04-16 09:28:31 +0100 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2012-04-24 16:44:34 +0100 |
commit | e8c92ed769008cfc799497f0a34c8faf46243c4d (patch) | |
tree | 6e00d9ddfd7d02ac9b1ac50d99de946d42443922 /fs/gfs2/log.h | |
parent | 2f7ee358e5a0fedcb45c64bd83dad9dc9a212508 (diff) | |
download | op-kernel-dev-e8c92ed769008cfc799497f0a34c8faf46243c4d.zip op-kernel-dev-e8c92ed769008cfc799497f0a34c8faf46243c4d.tar.gz |
GFS2: Clean up log write code path
Prior to this patch, we have two ways of sending i/o to the log.
One of those is used when we need to allocate both the data
to be written itself and also a buffer head to submit it. This
is done via sb_getblk and friends. This is used mostly for writing
log headers.
The other method is used when writing blocks which have some
in-place counterpart. This is the case for all the metadata
blocks which are journalled, and when journaled data is in use,
for unescaped journalled data blocks.
This patch replaces both of those two methods, and about half
a dozen separate i/o submission points with a single i/o
submission function. We also go direct to bio rather than
using buffer heads, since this allows us to build i/o
requests of the maximum size for the block device in
question. It also reduces the memory required for flushing
the log, which can be very useful in low memory situations.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/log.h')
-rw-r--r-- | fs/gfs2/log.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/fs/gfs2/log.h b/fs/gfs2/log.h index ff07454..3fd5215 100644 --- a/fs/gfs2/log.h +++ b/fs/gfs2/log.h @@ -52,8 +52,6 @@ extern unsigned int gfs2_struct2blk(struct gfs2_sbd *sdp, unsigned int nstruct, unsigned int ssize); extern int gfs2_log_reserve(struct gfs2_sbd *sdp, unsigned int blks); -extern void gfs2_log_incr_head(struct gfs2_sbd *sdp); -extern u64 gfs2_log_bmap(struct gfs2_sbd *sdp, unsigned int lbn); extern void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl); extern void gfs2_log_commit(struct gfs2_sbd *sdp, struct gfs2_trans *trans); extern void gfs2_remove_from_ail(struct gfs2_bufdata *bd); |