aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_trans_buf.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-07-12 20:17:51 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-12 20:17:51 -0400
commit4ce9d181ebe53abbca5f450b8a2984b8c3a38f26 (patch)
treeb563ac755c99ddf430402b2850199fdb625f1f7c /fs/xfs/xfs_trans_buf.c
parent5010fe9f095414b959fd6fda63986dc90fd0c419 (diff)
parent488ca3d8d088ec4658c87aaec6a91e98acccdd54 (diff)
Merge tag 'xfs-5.3-merge-12' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
Pull xfs updates from Darrick Wong: "In this release there are a significant amounts of consolidations and cleanups in the log code; restructuring of the log to issue struct bios directly; new bulkstat ioctls to return v5 fs inode information (and fix all the padding problems of the old ioctl); the beginnings of multithreaded inode walks (e.g. quotacheck); and a reduction in memory usage in the online scrub code leading to reduced runtimes. - Refactor inode geometry calculation into a single structure instead of open-coding pieces everywhere. - Add online repair to build options. - Remove unnecessary function call flags and functions. - Claim maintainership of various loose xfs documentation and header files. - Use struct bio directly for log buffer IOs instead of struct xfs_buf. - Reduce log item boilerplate code requirements. - Merge log item code spread across too many files. - Further distinguish between log item commits and cancellations. - Various small cleanups to the ag small allocator. - Support cgroup-aware writeback - libxfs refactoring for mkfs cleanup - Remove unneeded #includes - Fix a memory allocation miscalculation in the new log bio code - Fix bisection problems - Fix a crash in ioend processing caused by tripping over freeing of preallocated transactions - Split out a generic inode walk mechanism from the bulkstat code, hook up all the internal users to use the walking code, then clean up bulkstat to serve only the bulkstat ioctls. - Add a multithreaded iwalk implementation to speed up quotacheck on fast storage with many CPUs. - Remove unnecessary return values in logging teardown functions. - Supplement the bstat and inogrp structures with new bulkstat and inumbers structures that have all the fields we need for v5 filesystem features and none of the padding problems of their predecessors. - Wire up new ioctls that use the new structures with a much simpler bulk_ireq structure at the head instead of the pointerhappy mess we had before. - Enable userspace to constrain bulkstat returns to a single AG or a single special inode so that we can phase out a lot of geometry guesswork in userspace. - Reduce memory consumption and zeroing overhead in extended attribute scrub code. - Fix some behavioral regressions in the new bulkstat backend code. - Fix some behavioral regressions in the new log bio code" * tag 'xfs-5.3-merge-12' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (100 commits) xfs: chain bios the right way around in xfs_rw_bdev xfs: bump INUMBERS cursor correctly in xfs_inumbers_walk xfs: don't update lastino for FSBULKSTAT_SINGLE xfs: online scrub needn't bother zeroing its temporary buffer xfs: only allocate memory for scrubbing attributes when we need it xfs: refactor attr scrub memory allocation function xfs: refactor extended attribute buffer pointer functions xfs: attribute scrub should use seen_enough to pass error values xfs: allow single bulkstat of special inodes xfs: specify AG in bulk req xfs: wire up the v5 inumbers ioctl xfs: wire up new v5 bulkstat ioctls xfs: introduce v5 inode group structure xfs: introduce new v5 bulkstat structure xfs: rename bulkstat functions xfs: remove various bulk request typedef usage fs: xfs: xfs_log: Change return type from int to void xfs: poll waiting for quotacheck xfs: multithreaded iwalk implementation xfs: refactor INUMBERS to use iwalk functions ...
Diffstat (limited to 'fs/xfs/xfs_trans_buf.c')
-rw-r--r--fs/xfs/xfs_trans_buf.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c
index 7d65ebf1e847..b5b3a78ef31c 100644
--- a/fs/xfs/xfs_trans_buf.c
+++ b/fs/xfs/xfs_trans_buf.c
@@ -10,11 +10,9 @@
10#include "xfs_log_format.h" 10#include "xfs_log_format.h"
11#include "xfs_trans_resv.h" 11#include "xfs_trans_resv.h"
12#include "xfs_mount.h" 12#include "xfs_mount.h"
13#include "xfs_inode.h"
14#include "xfs_trans.h" 13#include "xfs_trans.h"
15#include "xfs_buf_item.h" 14#include "xfs_buf_item.h"
16#include "xfs_trans_priv.h" 15#include "xfs_trans_priv.h"
17#include "xfs_error.h"
18#include "xfs_trace.h" 16#include "xfs_trace.h"
19 17
20/* 18/*
@@ -174,8 +172,7 @@ xfs_trans_get_buf_map(
174xfs_buf_t * 172xfs_buf_t *
175xfs_trans_getsb( 173xfs_trans_getsb(
176 xfs_trans_t *tp, 174 xfs_trans_t *tp,
177 struct xfs_mount *mp, 175 struct xfs_mount *mp)
178 int flags)
179{ 176{
180 xfs_buf_t *bp; 177 xfs_buf_t *bp;
181 struct xfs_buf_log_item *bip; 178 struct xfs_buf_log_item *bip;
@@ -185,7 +182,7 @@ xfs_trans_getsb(
185 * if tp is NULL. 182 * if tp is NULL.
186 */ 183 */
187 if (tp == NULL) 184 if (tp == NULL)
188 return xfs_getsb(mp, flags); 185 return xfs_getsb(mp);
189 186
190 /* 187 /*
191 * If the superblock buffer already has this transaction 188 * If the superblock buffer already has this transaction
@@ -203,7 +200,7 @@ xfs_trans_getsb(
203 return bp; 200 return bp;
204 } 201 }
205 202
206 bp = xfs_getsb(mp, flags); 203 bp = xfs_getsb(mp);
207 if (bp == NULL) 204 if (bp == NULL)
208 return NULL; 205 return NULL;
209 206
@@ -428,7 +425,7 @@ xfs_trans_brelse(
428 425
429/* 426/*
430 * Mark the buffer as not needing to be unlocked when the buf item's 427 * Mark the buffer as not needing to be unlocked when the buf item's
431 * iop_unlock() routine is called. The buffer must already be locked 428 * iop_committing() routine is called. The buffer must already be locked
432 * and associated with the given transaction. 429 * and associated with the given transaction.
433 */ 430 */
434/* ARGSUSED */ 431/* ARGSUSED */