aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/libxfs/xfs_attr.c9
-rw-r--r--fs/xfs/libxfs/xfs_attr_remote.c2
-rw-r--r--fs/xfs/libxfs/xfs_bmap.c8
-rw-r--r--fs/xfs/libxfs/xfs_defer.c59
-rw-r--r--fs/xfs/libxfs/xfs_defer.h1
-rw-r--r--fs/xfs/xfs_bmap_util.c4
-rw-r--r--fs/xfs/xfs_inode.c2
-rw-r--r--fs/xfs/xfs_iomap.c3
-rw-r--r--fs/xfs/xfs_reflink.c4
-rw-r--r--fs/xfs/xfs_symlink.c1
-rw-r--r--fs/xfs/xfs_trans.h3
11 files changed, 21 insertions, 75 deletions
diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c
index 227887bee00d..3190dfc21b60 100644
--- a/fs/xfs/libxfs/xfs_attr.c
+++ b/fs/xfs/libxfs/xfs_attr.c
@@ -320,7 +320,6 @@ xfs_attr_set(
320 * buffer and run into problems with the write verifier. 320 * buffer and run into problems with the write verifier.
321 */ 321 */
322 xfs_trans_bhold(args.trans, leaf_bp); 322 xfs_trans_bhold(args.trans, leaf_bp);
323 xfs_defer_ijoin(args.trans->t_dfops, dp);
324 error = xfs_defer_finish(&args.trans); 323 error = xfs_defer_finish(&args.trans);
325 if (error) 324 if (error)
326 goto out; 325 goto out;
@@ -589,7 +588,6 @@ xfs_attr_leaf_addname(
589 error = xfs_attr3_leaf_to_node(args); 588 error = xfs_attr3_leaf_to_node(args);
590 if (error) 589 if (error)
591 goto out_defer_cancel; 590 goto out_defer_cancel;
592 xfs_defer_ijoin(args->trans->t_dfops, dp);
593 error = xfs_defer_finish(&args->trans); 591 error = xfs_defer_finish(&args->trans);
594 if (error) 592 if (error)
595 goto out_defer_cancel; 593 goto out_defer_cancel;
@@ -678,7 +676,6 @@ xfs_attr_leaf_addname(
678 /* bp is gone due to xfs_da_shrink_inode */ 676 /* bp is gone due to xfs_da_shrink_inode */
679 if (error) 677 if (error)
680 goto out_defer_cancel; 678 goto out_defer_cancel;
681 xfs_defer_ijoin(args->trans->t_dfops, dp);
682 error = xfs_defer_finish(&args->trans); 679 error = xfs_defer_finish(&args->trans);
683 if (error) 680 if (error)
684 goto out_defer_cancel; 681 goto out_defer_cancel;
@@ -742,7 +739,6 @@ xfs_attr_leaf_removename(
742 /* bp is gone due to xfs_da_shrink_inode */ 739 /* bp is gone due to xfs_da_shrink_inode */
743 if (error) 740 if (error)
744 goto out_defer_cancel; 741 goto out_defer_cancel;
745 xfs_defer_ijoin(args->trans->t_dfops, dp);
746 error = xfs_defer_finish(&args->trans); 742 error = xfs_defer_finish(&args->trans);
747 if (error) 743 if (error)
748 goto out_defer_cancel; 744 goto out_defer_cancel;
@@ -869,7 +865,6 @@ restart:
869 error = xfs_attr3_leaf_to_node(args); 865 error = xfs_attr3_leaf_to_node(args);
870 if (error) 866 if (error)
871 goto out_defer_cancel; 867 goto out_defer_cancel;
872 xfs_defer_ijoin(args->trans->t_dfops, dp);
873 error = xfs_defer_finish(&args->trans); 868 error = xfs_defer_finish(&args->trans);
874 if (error) 869 if (error)
875 goto out_defer_cancel; 870 goto out_defer_cancel;
@@ -894,7 +889,6 @@ restart:
894 error = xfs_da3_split(state); 889 error = xfs_da3_split(state);
895 if (error) 890 if (error)
896 goto out_defer_cancel; 891 goto out_defer_cancel;
897 xfs_defer_ijoin(args->trans->t_dfops, dp);
898 error = xfs_defer_finish(&args->trans); 892 error = xfs_defer_finish(&args->trans);
899 if (error) 893 if (error)
900 goto out_defer_cancel; 894 goto out_defer_cancel;
@@ -991,7 +985,6 @@ restart:
991 error = xfs_da3_join(state); 985 error = xfs_da3_join(state);
992 if (error) 986 if (error)
993 goto out_defer_cancel; 987 goto out_defer_cancel;
994 xfs_defer_ijoin(args->trans->t_dfops, dp);
995 error = xfs_defer_finish(&args->trans); 988 error = xfs_defer_finish(&args->trans);
996 if (error) 989 if (error)
997 goto out_defer_cancel; 990 goto out_defer_cancel;
@@ -1115,7 +1108,6 @@ xfs_attr_node_removename(
1115 error = xfs_da3_join(state); 1108 error = xfs_da3_join(state);
1116 if (error) 1109 if (error)
1117 goto out_defer_cancel; 1110 goto out_defer_cancel;
1118 xfs_defer_ijoin(args->trans->t_dfops, dp);
1119 error = xfs_defer_finish(&args->trans); 1111 error = xfs_defer_finish(&args->trans);
1120 if (error) 1112 if (error)
1121 goto out_defer_cancel; 1113 goto out_defer_cancel;
@@ -1147,7 +1139,6 @@ xfs_attr_node_removename(
1147 /* bp is gone due to xfs_da_shrink_inode */ 1139 /* bp is gone due to xfs_da_shrink_inode */
1148 if (error) 1140 if (error)
1149 goto out_defer_cancel; 1141 goto out_defer_cancel;
1150 xfs_defer_ijoin(args->trans->t_dfops, dp);
1151 error = xfs_defer_finish(&args->trans); 1142 error = xfs_defer_finish(&args->trans);
1152 if (error) 1143 if (error)
1153 goto out_defer_cancel; 1144 goto out_defer_cancel;
diff --git a/fs/xfs/libxfs/xfs_attr_remote.c b/fs/xfs/libxfs/xfs_attr_remote.c
index 77ca38586913..f52552313773 100644
--- a/fs/xfs/libxfs/xfs_attr_remote.c
+++ b/fs/xfs/libxfs/xfs_attr_remote.c
@@ -486,7 +486,6 @@ xfs_attr_rmtval_set(
486 &nmap); 486 &nmap);
487 if (error) 487 if (error)
488 goto out_defer_cancel; 488 goto out_defer_cancel;
489 xfs_defer_ijoin(args->trans->t_dfops, dp);
490 error = xfs_defer_finish(&args->trans); 489 error = xfs_defer_finish(&args->trans);
491 if (error) 490 if (error)
492 goto out_defer_cancel; 491 goto out_defer_cancel;
@@ -627,7 +626,6 @@ xfs_attr_rmtval_remove(
627 XFS_BMAPI_ATTRFORK, 1, &done); 626 XFS_BMAPI_ATTRFORK, 1, &done);
628 if (error) 627 if (error)
629 goto out_defer_cancel; 628 goto out_defer_cancel;
630 xfs_defer_ijoin(args->trans->t_dfops, args->dp);
631 error = xfs_defer_finish(&args->trans); 629 error = xfs_defer_finish(&args->trans);
632 if (error) 630 if (error)
633 goto out_defer_cancel; 631 goto out_defer_cancel;
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
index 71687d805f79..5cd490dc891a 100644
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -1119,7 +1119,6 @@ xfs_bmap_add_attrfork(
1119 xfs_log_sb(tp); 1119 xfs_log_sb(tp);
1120 } 1120 }
1121 1121
1122 xfs_defer_ijoin(tp->t_dfops, ip);
1123 error = xfs_trans_commit(tp); 1122 error = xfs_trans_commit(tp);
1124 xfs_iunlock(ip, XFS_ILOCK_EXCL); 1123 xfs_iunlock(ip, XFS_ILOCK_EXCL);
1125 return error; 1124 return error;
@@ -5987,7 +5986,6 @@ __xfs_bmap_add(
5987 int whichfork, 5986 int whichfork,
5988 struct xfs_bmbt_irec *bmap) 5987 struct xfs_bmbt_irec *bmap)
5989{ 5988{
5990 int error;
5991 struct xfs_bmap_intent *bi; 5989 struct xfs_bmap_intent *bi;
5992 5990
5993 trace_xfs_bmap_defer(mp, 5991 trace_xfs_bmap_defer(mp,
@@ -6006,12 +6004,6 @@ __xfs_bmap_add(
6006 bi->bi_whichfork = whichfork; 6004 bi->bi_whichfork = whichfork;
6007 bi->bi_bmap = *bmap; 6005 bi->bi_bmap = *bmap;
6008 6006
6009 error = xfs_defer_ijoin(dfops, bi->bi_owner);
6010 if (error) {
6011 kmem_free(bi);
6012 return error;
6013 }
6014
6015 xfs_defer_add(dfops, XFS_DEFER_OPS_TYPE_BMAP, &bi->bi_list); 6007 xfs_defer_add(dfops, XFS_DEFER_OPS_TYPE_BMAP, &bi->bi_list);
6016 return 0; 6008 return 0;
6017} 6009}
diff --git a/fs/xfs/libxfs/xfs_defer.c b/fs/xfs/libxfs/xfs_defer.c
index e9b7671d289a..1e7073252a5e 100644
--- a/fs/xfs/libxfs/xfs_defer.c
+++ b/fs/xfs/libxfs/xfs_defer.c
@@ -15,6 +15,8 @@
15#include "xfs_defer.h" 15#include "xfs_defer.h"
16#include "xfs_trans.h" 16#include "xfs_trans.h"
17#include "xfs_buf_item.h" 17#include "xfs_buf_item.h"
18#include "xfs_inode.h"
19#include "xfs_inode_item.h"
18#include "xfs_trace.h" 20#include "xfs_trace.h"
19 21
20/* 22/*
@@ -230,16 +232,14 @@ xfs_defer_trans_roll(
230{ 232{
231 struct xfs_defer_ops *dop = (*tp)->t_dfops; 233 struct xfs_defer_ops *dop = (*tp)->t_dfops;
232 struct xfs_buf_log_item *bli; 234 struct xfs_buf_log_item *bli;
235 struct xfs_inode_log_item *ili;
233 struct xfs_log_item *lip; 236 struct xfs_log_item *lip;
234 struct xfs_buf *bplist[XFS_DEFER_OPS_NR_BUFS]; 237 struct xfs_buf *bplist[XFS_DEFER_OPS_NR_BUFS];
235 int bpcount = 0; 238 struct xfs_inode *iplist[XFS_DEFER_OPS_NR_INODES];
239 int bpcount = 0, ipcount = 0;
236 int i; 240 int i;
237 int error; 241 int error;
238 242
239 /* Log all the joined inodes. */
240 for (i = 0; i < XFS_DEFER_OPS_NR_INODES && dop->dop_inodes[i]; i++)
241 xfs_trans_log_inode(*tp, dop->dop_inodes[i], XFS_ILOG_CORE);
242
243 list_for_each_entry(lip, &(*tp)->t_items, li_trans) { 243 list_for_each_entry(lip, &(*tp)->t_items, li_trans) {
244 switch (lip->li_type) { 244 switch (lip->li_type) {
245 case XFS_LI_BUF: 245 case XFS_LI_BUF:
@@ -254,6 +254,19 @@ xfs_defer_trans_roll(
254 bplist[bpcount++] = bli->bli_buf; 254 bplist[bpcount++] = bli->bli_buf;
255 } 255 }
256 break; 256 break;
257 case XFS_LI_INODE:
258 ili = container_of(lip, struct xfs_inode_log_item,
259 ili_item);
260 if (ili->ili_lock_flags == 0) {
261 if (ipcount >= XFS_DEFER_OPS_NR_INODES) {
262 ASSERT(0);
263 return -EFSCORRUPTED;
264 }
265 xfs_trans_log_inode(*tp, ili->ili_inode,
266 XFS_ILOG_CORE);
267 iplist[ipcount++] = ili->ili_inode;
268 }
269 break;
257 default: 270 default:
258 break; 271 break;
259 } 272 }
@@ -271,8 +284,8 @@ xfs_defer_trans_roll(
271 } 284 }
272 285
273 /* Rejoin the joined inodes. */ 286 /* Rejoin the joined inodes. */
274 for (i = 0; i < XFS_DEFER_OPS_NR_INODES && dop->dop_inodes[i]; i++) 287 for (i = 0; i < ipcount; i++)
275 xfs_trans_ijoin(*tp, dop->dop_inodes[i], 0); 288 xfs_trans_ijoin(*tp, iplist[i], 0);
276 289
277 /* Rejoin the buffers and dirty them so the log moves forward. */ 290 /* Rejoin the buffers and dirty them so the log moves forward. */
278 for (i = 0; i < bpcount; i++) { 291 for (i = 0; i < bpcount; i++) {
@@ -292,41 +305,13 @@ xfs_defer_has_unfinished_work(
292} 305}
293 306
294/* 307/*
295 * Add this inode to the deferred op. Each joined inode is relogged
296 * each time we roll the transaction.
297 */
298int
299xfs_defer_ijoin(
300 struct xfs_defer_ops *dop,
301 struct xfs_inode *ip)
302{
303 int i;
304
305 for (i = 0; i < XFS_DEFER_OPS_NR_INODES; i++) {
306 if (dop->dop_inodes[i] == ip)
307 return 0;
308 else if (dop->dop_inodes[i] == NULL) {
309 dop->dop_inodes[i] = ip;
310 return 0;
311 }
312 }
313
314 ASSERT(0);
315 return -EFSCORRUPTED;
316}
317
318/*
319 * Reset an already used dfops after finish. 308 * Reset an already used dfops after finish.
320 */ 309 */
321static void 310static void
322xfs_defer_reset( 311xfs_defer_reset(
323 struct xfs_trans *tp) 312 struct xfs_trans *tp)
324{ 313{
325 struct xfs_defer_ops *dop = tp->t_dfops; 314 ASSERT(!xfs_defer_has_unfinished_work(tp->t_dfops));
326
327 ASSERT(!xfs_defer_has_unfinished_work(dop));
328
329 memset(dop->dop_inodes, 0, sizeof(dop->dop_inodes));
330 315
331 /* 316 /*
332 * Low mode state transfers across transaction rolls to mirror dfops 317 * Low mode state transfers across transaction rolls to mirror dfops
@@ -588,8 +573,6 @@ xfs_defer_move(
588 list_splice_init(&src->dop_intake, &dst->dop_intake); 573 list_splice_init(&src->dop_intake, &dst->dop_intake);
589 list_splice_init(&src->dop_pending, &dst->dop_pending); 574 list_splice_init(&src->dop_pending, &dst->dop_pending);
590 575
591 memcpy(dst->dop_inodes, src->dop_inodes, sizeof(dst->dop_inodes));
592
593 /* 576 /*
594 * Low free space mode was historically controlled by a dfops field. 577 * Low free space mode was historically controlled by a dfops field.
595 * This meant that low mode state potentially carried across multiple 578 * This meant that low mode state potentially carried across multiple
diff --git a/fs/xfs/libxfs/xfs_defer.h b/fs/xfs/libxfs/xfs_defer.h
index 4a8bb838adf2..bf1e9f78561e 100644
--- a/fs/xfs/libxfs/xfs_defer.h
+++ b/fs/xfs/libxfs/xfs_defer.h
@@ -42,7 +42,6 @@ int xfs_defer_finish(struct xfs_trans **tp);
42void xfs_defer_cancel(struct xfs_trans *); 42void xfs_defer_cancel(struct xfs_trans *);
43void xfs_defer_init(struct xfs_trans *tp, struct xfs_defer_ops *dop); 43void xfs_defer_init(struct xfs_trans *tp, struct xfs_defer_ops *dop);
44bool xfs_defer_has_unfinished_work(struct xfs_defer_ops *dop); 44bool xfs_defer_has_unfinished_work(struct xfs_defer_ops *dop);
45int xfs_defer_ijoin(struct xfs_defer_ops *dop, struct xfs_inode *ip);
46void xfs_defer_move(struct xfs_trans *dtp, struct xfs_trans *stp); 45void xfs_defer_move(struct xfs_trans *dtp, struct xfs_trans *stp);
47 46
48/* Description of a deferred type. */ 47/* Description of a deferred type. */
diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
index 0c58a66b39e5..30ac1300dc49 100644
--- a/fs/xfs/xfs_bmap_util.c
+++ b/fs/xfs/xfs_bmap_util.c
@@ -979,7 +979,6 @@ xfs_alloc_file_space(
979 /* 979 /*
980 * Complete the transaction 980 * Complete the transaction
981 */ 981 */
982 xfs_defer_ijoin(tp->t_dfops, ip);
983 error = xfs_trans_commit(tp); 982 error = xfs_trans_commit(tp);
984 xfs_iunlock(ip, XFS_ILOCK_EXCL); 983 xfs_iunlock(ip, XFS_ILOCK_EXCL);
985 if (error) 984 if (error)
@@ -1037,8 +1036,6 @@ xfs_unmap_extent(
1037 if (error) 1036 if (error)
1038 goto out_trans_cancel; 1037 goto out_trans_cancel;
1039 1038
1040 xfs_defer_ijoin(tp->t_dfops, ip);
1041
1042 error = xfs_trans_commit(tp); 1039 error = xfs_trans_commit(tp);
1043out_unlock: 1040out_unlock:
1044 xfs_iunlock(ip, XFS_ILOCK_EXCL); 1041 xfs_iunlock(ip, XFS_ILOCK_EXCL);
@@ -1624,7 +1621,6 @@ xfs_swap_extent_rmap(
1624 if (error) 1621 if (error)
1625 goto out_defer; 1622 goto out_defer;
1626 1623
1627 xfs_defer_ijoin(tp->t_dfops, ip);
1628 error = xfs_defer_finish(tpp); 1624 error = xfs_defer_finish(tpp);
1629 tp = *tpp; 1625 tp = *tpp;
1630 if (error) 1626 if (error)
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 441c8593cfd7..7bb46a0eecfc 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -1569,7 +1569,6 @@ xfs_itruncate_extents_flags(
1569 * Duplicate the transaction that has the permanent 1569 * Duplicate the transaction that has the permanent
1570 * reservation and commit the old transaction. 1570 * reservation and commit the old transaction.
1571 */ 1571 */
1572 xfs_defer_ijoin(tp->t_dfops, ip);
1573 error = xfs_defer_finish(&tp); 1572 error = xfs_defer_finish(&tp);
1574 if (error) 1573 if (error)
1575 goto out_bmap_cancel; 1574 goto out_bmap_cancel;
@@ -1810,7 +1809,6 @@ xfs_inactive_ifree(
1810 * Just ignore errors at this point. There is nothing we can do except 1809 * Just ignore errors at this point. There is nothing we can do except
1811 * to try to keep going. Make sure it's not a silent error. 1810 * to try to keep going. Make sure it's not a silent error.
1812 */ 1811 */
1813 xfs_defer_ijoin(tp->t_dfops, ip);
1814 error = xfs_trans_commit(tp); 1812 error = xfs_trans_commit(tp);
1815 if (error) 1813 if (error)
1816 xfs_notice(mp, "%s: xfs_trans_commit returned error %d", 1814 xfs_notice(mp, "%s: xfs_trans_commit returned error %d",
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index 8093a01fcf9e..3282575e2df4 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -261,7 +261,6 @@ xfs_iomap_write_direct(
261 /* 261 /*
262 * Complete the transaction 262 * Complete the transaction
263 */ 263 */
264 xfs_defer_ijoin(tp->t_dfops, ip);
265 error = xfs_trans_commit(tp); 264 error = xfs_trans_commit(tp);
266 if (error) 265 if (error)
267 goto out_unlock; 266 goto out_unlock;
@@ -764,7 +763,6 @@ xfs_iomap_write_allocate(
764 if (error) 763 if (error)
765 goto trans_cancel; 764 goto trans_cancel;
766 765
767 xfs_defer_ijoin(tp->t_dfops, ip);
768 error = xfs_trans_commit(tp); 766 error = xfs_trans_commit(tp);
769 if (error) 767 if (error)
770 goto error0; 768 goto error0;
@@ -884,7 +882,6 @@ xfs_iomap_write_unwritten(
884 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); 882 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
885 } 883 }
886 884
887 xfs_defer_ijoin(tp->t_dfops, ip);
888 error = xfs_trans_commit(tp); 885 error = xfs_trans_commit(tp);
889 xfs_iunlock(ip, XFS_ILOCK_EXCL); 886 xfs_iunlock(ip, XFS_ILOCK_EXCL);
890 if (error) 887 if (error)
diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c
index e986fcf928e5..dce8ba8ab681 100644
--- a/fs/xfs/xfs_reflink.c
+++ b/fs/xfs/xfs_reflink.c
@@ -435,7 +435,6 @@ retry:
435 xfs_inode_set_cowblocks_tag(ip); 435 xfs_inode_set_cowblocks_tag(ip);
436 436
437 /* Finish up. */ 437 /* Finish up. */
438 xfs_defer_ijoin(tp->t_dfops, ip);
439 error = xfs_trans_commit(tp); 438 error = xfs_trans_commit(tp);
440 if (error) 439 if (error)
441 return error; 440 return error;
@@ -518,7 +517,6 @@ xfs_reflink_cancel_cow_blocks(
518 NULL); 517 NULL);
519 518
520 /* Roll the transaction */ 519 /* Roll the transaction */
521 xfs_defer_ijoin((*tpp)->t_dfops, ip);
522 error = xfs_defer_finish(tpp); 520 error = xfs_defer_finish(tpp);
523 if (error) { 521 if (error) {
524 xfs_defer_cancel(*tpp); 522 xfs_defer_cancel(*tpp);
@@ -716,7 +714,6 @@ xfs_reflink_end_cow(
716 /* Remove the mapping from the CoW fork. */ 714 /* Remove the mapping from the CoW fork. */
717 xfs_bmap_del_extent_cow(ip, &icur, &got, &del); 715 xfs_bmap_del_extent_cow(ip, &icur, &got, &del);
718 716
719 xfs_defer_ijoin(tp->t_dfops, ip);
720 error = xfs_defer_finish(&tp); 717 error = xfs_defer_finish(&tp);
721 if (error) 718 if (error)
722 goto out_cancel; 719 goto out_cancel;
@@ -1077,7 +1074,6 @@ xfs_reflink_remap_extent(
1077 1074
1078next_extent: 1075next_extent:
1079 /* Process all the deferred stuff. */ 1076 /* Process all the deferred stuff. */
1080 xfs_defer_ijoin(tp->t_dfops, ip);
1081 error = xfs_defer_finish(&tp); 1077 error = xfs_defer_finish(&tp);
1082 if (error) 1078 if (error)
1083 goto out_cancel; 1079 goto out_cancel;
diff --git a/fs/xfs/xfs_symlink.c b/fs/xfs/xfs_symlink.c
index 2bfe7fbbedb2..a3e98c64b6e3 100644
--- a/fs/xfs/xfs_symlink.c
+++ b/fs/xfs/xfs_symlink.c
@@ -454,7 +454,6 @@ xfs_inactive_symlink_rmt(
454 * Commit the transaction. This first logs the EFI and the inode, then 454 * Commit the transaction. This first logs the EFI and the inode, then
455 * rolls and commits the transaction that frees the extents. 455 * rolls and commits the transaction that frees the extents.
456 */ 456 */
457 xfs_defer_ijoin(tp->t_dfops, ip);
458 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); 457 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
459 error = xfs_trans_commit(tp); 458 error = xfs_trans_commit(tp);
460 if (error) { 459 if (error) {
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index 581456c79197..8665d45b82c6 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
@@ -97,9 +97,6 @@ void xfs_log_item_init(struct xfs_mount *mp, struct xfs_log_item *item,
97struct xfs_defer_ops { 97struct xfs_defer_ops {
98 struct list_head dop_intake; /* unlogged pending work */ 98 struct list_head dop_intake; /* unlogged pending work */
99 struct list_head dop_pending; /* logged pending work */ 99 struct list_head dop_pending; /* logged pending work */
100
101 /* relog these with each roll */
102 struct xfs_inode *dop_inodes[XFS_DEFER_OPS_NR_INODES];
103}; 100};
104 101
105/* 102/*