diff options
author | Dave Chinner <dchinner@redhat.com> | 2010-09-21 20:47:20 -0400 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-10-18 16:07:48 -0400 |
commit | ebad861b5702c3e2332a3e906978f47144d22f70 (patch) | |
tree | 7b4502277c46d26d1d26258d05596b58ab6b868a /fs/xfs/linux-2.6/xfs_buf.h | |
parent | 5adc94c247c3779782c7b0b8b5e28cf50596eb37 (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.h | 5 |
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 | */ |
380 | extern xfs_buftarg_t *xfs_alloc_buftarg(struct block_device *, int, const char *); | 380 | extern xfs_buftarg_t *xfs_alloc_buftarg(struct xfs_mount *, |
381 | struct block_device *, int, const char *); | ||
381 | extern void xfs_free_buftarg(struct xfs_mount *, struct xfs_buftarg *); | 382 | extern void xfs_free_buftarg(struct xfs_mount *, struct xfs_buftarg *); |
382 | extern void xfs_wait_buftarg(xfs_buftarg_t *); | 383 | extern void xfs_wait_buftarg(xfs_buftarg_t *); |
383 | extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int); | 384 | extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int); |