aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/linux-2.6/xfs_buf.c10
-rw-r--r--fs/xfs/linux-2.6/xfs_buf.h8
-rw-r--r--fs/xfs/xfs_buf_item.c1
-rw-r--r--fs/xfs/xfs_inode.c1
4 files changed, 3 insertions, 17 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index f4d4e708a8d6..ea79072f5210 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -987,13 +987,12 @@ xfs_bwrite(
987{ 987{
988 int error; 988 int error;
989 989
990 bp->b_strat = xfs_bdstrat_cb;
991 bp->b_mount = mp; 990 bp->b_mount = mp;
992 bp->b_flags |= XBF_WRITE; 991 bp->b_flags |= XBF_WRITE;
993 bp->b_flags &= ~(XBF_ASYNC | XBF_READ); 992 bp->b_flags &= ~(XBF_ASYNC | XBF_READ);
994 993
995 xfs_buf_delwri_dequeue(bp); 994 xfs_buf_delwri_dequeue(bp);
996 xfs_buf_iostrategy(bp); 995 xfs_bdstrat_cb(bp);
997 996
998 error = xfs_buf_iowait(bp); 997 error = xfs_buf_iowait(bp);
999 if (error) 998 if (error)
@@ -1009,7 +1008,6 @@ xfs_bdwrite(
1009{ 1008{
1010 trace_xfs_buf_bdwrite(bp, _RET_IP_); 1009 trace_xfs_buf_bdwrite(bp, _RET_IP_);
1011 1010
1012 bp->b_strat = xfs_bdstrat_cb;
1013 bp->b_mount = mp; 1011 bp->b_mount = mp;
1014 1012
1015 bp->b_flags &= ~XBF_READ; 1013 bp->b_flags &= ~XBF_READ;
@@ -1044,7 +1042,6 @@ xfs_bioerror(
1044 XFS_BUF_UNDONE(bp); 1042 XFS_BUF_UNDONE(bp);
1045 XFS_BUF_STALE(bp); 1043 XFS_BUF_STALE(bp);
1046 1044
1047 XFS_BUF_CLR_BDSTRAT_FUNC(bp);
1048 xfs_biodone(bp); 1045 xfs_biodone(bp);
1049 1046
1050 return EIO; 1047 return EIO;
@@ -1074,7 +1071,6 @@ xfs_bioerror_relse(
1074 XFS_BUF_DONE(bp); 1071 XFS_BUF_DONE(bp);
1075 XFS_BUF_STALE(bp); 1072 XFS_BUF_STALE(bp);
1076 XFS_BUF_CLR_IODONE_FUNC(bp); 1073 XFS_BUF_CLR_IODONE_FUNC(bp);
1077 XFS_BUF_CLR_BDSTRAT_FUNC(bp);
1078 if (!(fl & XBF_ASYNC)) { 1074 if (!(fl & XBF_ASYNC)) {
1079 /* 1075 /*
1080 * Mark b_error and B_ERROR _both_. 1076 * Mark b_error and B_ERROR _both_.
@@ -1869,7 +1865,7 @@ xfsbufd(
1869 struct xfs_buf *bp; 1865 struct xfs_buf *bp;
1870 bp = list_first_entry(&tmp, struct xfs_buf, b_list); 1866 bp = list_first_entry(&tmp, struct xfs_buf, b_list);
1871 list_del_init(&bp->b_list); 1867 list_del_init(&bp->b_list);
1872 xfs_buf_iostrategy(bp); 1868 xfs_bdstrat_cb(bp);
1873 count++; 1869 count++;
1874 } 1870 }
1875 if (count) 1871 if (count)
@@ -1916,7 +1912,7 @@ xfs_flush_buftarg(
1916 bp->b_flags &= ~XBF_ASYNC; 1912 bp->b_flags &= ~XBF_ASYNC;
1917 list_add(&bp->b_list, &wait_list); 1913 list_add(&bp->b_list, &wait_list);
1918 } 1914 }
1919 xfs_buf_iostrategy(bp); 1915 xfs_bdstrat_cb(bp);
1920 } 1916 }
1921 1917
1922 if (wait) { 1918 if (wait) {
diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h
index 814f9e83b516..d072e5ff923b 100644
--- a/fs/xfs/linux-2.6/xfs_buf.h
+++ b/fs/xfs/linux-2.6/xfs_buf.h
@@ -187,7 +187,6 @@ typedef struct xfs_buf {
187 atomic_t b_io_remaining; /* #outstanding I/O requests */ 187 atomic_t b_io_remaining; /* #outstanding I/O requests */
188 xfs_buf_iodone_t b_iodone; /* I/O completion function */ 188 xfs_buf_iodone_t b_iodone; /* I/O completion function */
189 xfs_buf_relse_t b_relse; /* releasing function */ 189 xfs_buf_relse_t b_relse; /* releasing function */
190 xfs_buf_bdstrat_t b_strat; /* pre-write function */
191 struct completion b_iowait; /* queue for I/O waiters */ 190 struct completion b_iowait; /* queue for I/O waiters */
192 void *b_fspriv; 191 void *b_fspriv;
193 void *b_fspriv2; 192 void *b_fspriv2;
@@ -245,11 +244,6 @@ extern int xfs_buf_iowait(xfs_buf_t *);
245extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, void *, 244extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, void *,
246 xfs_buf_rw_t); 245 xfs_buf_rw_t);
247 246
248static inline int xfs_buf_iostrategy(xfs_buf_t *bp)
249{
250 return bp->b_strat ? bp->b_strat(bp) : xfs_buf_iorequest(bp);
251}
252
253static inline int xfs_buf_geterror(xfs_buf_t *bp) 247static inline int xfs_buf_geterror(xfs_buf_t *bp)
254{ 248{
255 return bp ? bp->b_error : ENOMEM; 249 return bp ? bp->b_error : ENOMEM;
@@ -321,8 +315,6 @@ extern void xfs_buf_terminate(void);
321#define XFS_BUF_IODONE_FUNC(bp) ((bp)->b_iodone) 315#define XFS_BUF_IODONE_FUNC(bp) ((bp)->b_iodone)
322#define XFS_BUF_SET_IODONE_FUNC(bp, func) ((bp)->b_iodone = (func)) 316#define XFS_BUF_SET_IODONE_FUNC(bp, func) ((bp)->b_iodone = (func))
323#define XFS_BUF_CLR_IODONE_FUNC(bp) ((bp)->b_iodone = NULL) 317#define XFS_BUF_CLR_IODONE_FUNC(bp) ((bp)->b_iodone = NULL)
324#define XFS_BUF_SET_BDSTRAT_FUNC(bp, func) ((bp)->b_strat = (func))
325#define XFS_BUF_CLR_BDSTRAT_FUNC(bp) ((bp)->b_strat = NULL)
326 318
327#define XFS_BUF_FSPRIVATE(bp, type) ((type)(bp)->b_fspriv) 319#define XFS_BUF_FSPRIVATE(bp, type) ((type)(bp)->b_fspriv)
328#define XFS_BUF_SET_FSPRIVATE(bp, val) ((bp)->b_fspriv = (void*)(val)) 320#define XFS_BUF_SET_FSPRIVATE(bp, val) ((bp)->b_fspriv = (void*)(val))
diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
index 2a9e4ef12110..1b09d7a280df 100644
--- a/fs/xfs/xfs_buf_item.c
+++ b/fs/xfs/xfs_buf_item.c
@@ -694,7 +694,6 @@ xfs_buf_item_init(
694 */ 694 */
695 if (bp->b_mount != mp) 695 if (bp->b_mount != mp)
696 bp->b_mount = mp; 696 bp->b_mount = mp;
697 XFS_BUF_SET_BDSTRAT_FUNC(bp, xfs_bdstrat_cb);
698 if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) { 697 if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) {
699 lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); 698 lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *);
700 if (lip->li_type == XFS_LI_BUF) { 699 if (lip->li_type == XFS_LI_BUF) {
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index eef211dfca03..68415cb4f23c 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2719,7 +2719,6 @@ cluster_corrupt_out:
2719 * mark it as stale and brelse. 2719 * mark it as stale and brelse.
2720 */ 2720 */
2721 if (XFS_BUF_IODONE_FUNC(bp)) { 2721 if (XFS_BUF_IODONE_FUNC(bp)) {
2722 XFS_BUF_CLR_BDSTRAT_FUNC(bp);
2723 XFS_BUF_UNDONE(bp); 2722 XFS_BUF_UNDONE(bp);
2724 XFS_BUF_STALE(bp); 2723 XFS_BUF_STALE(bp);
2725 XFS_BUF_ERROR(bp,EIO); 2724 XFS_BUF_ERROR(bp,EIO);