aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_buf.h
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2010-09-21 20:47:20 -0400
committerAlex Elder <aelder@sgi.com>2010-10-18 16:07:48 -0400
commitebad861b5702c3e2332a3e906978f47144d22f70 (patch)
tree7b4502277c46d26d1d26258d05596b58ab6b868a /fs/xfs/linux-2.6/xfs_buf.h
parent5adc94c247c3779782c7b0b8b5e28cf50596eb37 (diff)
xfs: store xfs_mount in the buftarg instead of in the xfs_buf
Each buffer contains both a buftarg pointer and a mount pointer. If we add a mount pointer into the buftarg, we can avoid needing the b_mount field in every buffer and grab it from the buftarg when needed instead. This shrinks the xfs_buf by 8 bytes. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_buf.h')
-rw-r--r--fs/xfs/linux-2.6/xfs_buf.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h
index 57eedc750ee6..def2cea2b4d6 100644
--- a/fs/xfs/linux-2.6/xfs_buf.h
+++ b/fs/xfs/linux-2.6/xfs_buf.h
@@ -132,6 +132,7 @@ typedef struct xfs_buftarg {
132 dev_t bt_dev; 132 dev_t bt_dev;
133 struct block_device *bt_bdev; 133 struct block_device *bt_bdev;
134 struct address_space *bt_mapping; 134 struct address_space *bt_mapping;
135 struct xfs_mount *bt_mount;
135 unsigned int bt_bsize; 136 unsigned int bt_bsize;
136 unsigned int bt_sshift; 137 unsigned int bt_sshift;
137 size_t bt_smask; 138 size_t bt_smask;
@@ -189,7 +190,6 @@ typedef struct xfs_buf {
189 struct completion b_iowait; /* queue for I/O waiters */ 190 struct completion b_iowait; /* queue for I/O waiters */
190 void *b_fspriv; 191 void *b_fspriv;
191 void *b_fspriv2; 192 void *b_fspriv2;
192 struct xfs_mount *b_mount;
193 unsigned short b_error; /* error code on I/O */ 193 unsigned short b_error; /* error code on I/O */
194 unsigned int b_page_count; /* size of page array */ 194 unsigned int b_page_count; /* size of page array */
195 unsigned int b_offset; /* page offset in first page */ 195 unsigned int b_offset; /* page offset in first page */
@@ -377,7 +377,8 @@ static inline void xfs_buf_relse(xfs_buf_t *bp)
377/* 377/*
378 * Handling of buftargs. 378 * Handling of buftargs.
379 */ 379 */
380extern xfs_buftarg_t *xfs_alloc_buftarg(struct block_device *, int, const char *); 380extern xfs_buftarg_t *xfs_alloc_buftarg(struct xfs_mount *,
381 struct block_device *, int, const char *);
381extern void xfs_free_buftarg(struct xfs_mount *, struct xfs_buftarg *); 382extern void xfs_free_buftarg(struct xfs_mount *, struct xfs_buftarg *);
382extern void xfs_wait_buftarg(xfs_buftarg_t *); 383extern void xfs_wait_buftarg(xfs_buftarg_t *);
383extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int); 384extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int);