[XFS updates] XFS development tree branch, master, updated. v2.6.33-6351-g68a2ac7
xfs at oss.sgi.com
xfs at oss.sgi.com
Fri Mar 26 11:28:34 CDT 2010
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".
The branch, master has been updated
68a2ac7 xfs: clean up xlog_write_adv_cnt
9a0965f xfs: introduce new internal log vector structure
33841d9 xfs: reindent xlog_write
b0c50e2 xfs: factor xlog_write
ba08b39 xfs: log ticket reservation underestimates the number of iclogs
4da4898 xfs: Clean up xfs_trans_committed code after factoring
ab4ea50 xfs: update and factor xfs_trans_committed()
72dec3a xfs: clean up xfs_trans_commit logic even more
e35e0c8 xfs: split out iclog writing from xfs_trans_commit()
174d1ee xfs: fix reservation release commit flag in xfs_bmap_add_attrfork()
31534cc xfs: remove stale parameter from ->iop_unpin method
aef714b xfs: Add inode pin counts to traces
1d3c797 xfs: factor log item initialisation
5b62938 xfs: add blockdev name to kthreads
080f453 xfs: Fix integer overflow in fs/xfs/linux-2.6/xfs_ioctl*.c
from e8c3753ce4cd6a805ebcfdb3aa6d30e6f4b8b3e0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 68a2ac777cca40ccc993512bcf457999be71cc36
Author: Christoph Hellwig <hch at infradead.org>
Date: Tue Mar 23 11:47:38 2010 +1100
xfs: clean up xlog_write_adv_cnt
Replace the awkward xlog_write_adv_cnt with an inline helper that makes
it more obvious that it's modifying it's paramters, and replace the use
of an integer type for "ptr" with a real void pointer. Also move
xlog_write_adv_cnt to xfs_log_priv.h as it will be used outside of
xfs_log.c in the delayed logging series.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 9a0965f6be99440b960eeab28da7f341ee70be61
Author: Dave Chinner <dchinner at redhat.com>
Date: Tue Mar 23 11:43:17 2010 +1100
xfs: introduce new internal log vector structure
The current log IO vector structure is a flat array and not
extensible. To make it possible to keep separate log IO vectors for
individual log items, we need a method of chaining log IO vectors
together.
Introduce a new log vector type that can be used to wrap the
existing log IO vectors on use that internally to the log. This
means that the existing external interface (xfs_log_write) does not
change and hence no changes to the transaction commit code are
required.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 33841d978103f7a564cd32134383dc9a3cb71db6
Author: Christoph Hellwig <hch at infradead.org>
Date: Tue Mar 23 11:35:45 2010 +1100
xfs: reindent xlog_write
Reindent xlog_write to normal one tab indents and move all variable
declarations into the closest enclosing block.
Split from a bigger patch by Dave Chinner.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit b0c50e224b14234d2b692016f9fe3760a6646a55
Author: Dave Chinner <dchinner at redhat.com>
Date: Tue Mar 23 11:29:44 2010 +1100
xfs: factor xlog_write
xlog_write is a mess that takes a lot of effort to understand. It is
a mass of nested loops with 4 space indents to get it to fit in 80 columns
and lots of funky variables that aren't obvious what they mean or do.
Break it down into understandable chunks.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit ba08b390ff4cd2cc53198d0941be623f301d40b5
Author: Dave Chinner <dchinner at redhat.com>
Date: Tue Mar 23 11:21:11 2010 +1100
xfs: log ticket reservation underestimates the number of iclogs
When allocation a ticket for a transaction, the ticket is initialised with the
worst case log space usage based on the number of bytes the transaction may
consume. Part of this calculation is the number of log headers required for the
iclog space used up by the transaction.
This calculation makes an undocumented assumption that if the transaction uses
the log header space reservation on an iclog, then it consumes either the
entire iclog or it completes. That is - the transaction that is first in an
iclog is the transaction that the log header reservation is accounted to. If
the transaction is larger than the iclog, then it will use the entire iclog
itself. Document this assumption.
Further, the current calculation uses the rule that we can fit iclog_size bytes
of transaction data into an iclog. This is in correct - the amount of space
available in an iclog for transaction data is the size of the iclog minus the
space used for log record headers. This means that the calculation is out by
512 bytes per 32k of log space the transaction can consume. This is rarely an
issue because maximally sized transactions are extremely uncommon, and for 4k
block size filesystems maximal transaction reservations are about 400kb. Hence
the error in this case is less than the size of an iclog, so that makes it even
harder to hit.
However, anyone using larger directory blocks (16k directory blocks push the
maximum transaction size to approx. 900k on a 4k block size filesystem) or
larger block size (e.g. 64k blocks push transactions to the 3-4MB size) could
see the error grow to more than an iclog and at this point the transaction is
guaranteed to get a reservation underrun and shutdown the filesystem.
Fix this by adjusting the calculation to calculate the correct number of iclogs
required and account for them all up front.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 4da48986ed64fdcebe9485cf1256dae4667ca4e0
Author: Dave Chinner <dchinner at redhat.com>
Date: Tue Mar 23 10:11:05 2010 +1100
xfs: Clean up xfs_trans_committed code after factoring
Now that the code has been factored, clean up all the remaining
style cruft, simplify the code and re-order functions so that it
doesn't need forward declarations.
Also move the remaining functions that require forward declarations
(xfs_trans_uncommit, xfs_trans_free) so that all the forward
declarations can be removed from the file.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit ab4ea506dcbfda4b1827d3322c1092bf83e01aae
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Mar 8 15:06:22 2010 +1100
xfs: update and factor xfs_trans_committed()
The function header to xfs-trans_committed has long had this
comment:
* THIS SHOULD BE REWRITTEN TO USE xfs_trans_next_item()
To prepare for different methods of committing items, convert the
code to use xfs_trans_next_item() and factor the code into smaller,
more digestible chunks.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 72dec3a8d3a8a39b5d637e78c84bd7e8a300d7de
Author: Christoph Hellwig <hch at infradead.org>
Date: Mon Mar 15 12:52:49 2010 +1100
xfs: clean up xfs_trans_commit logic even more
> +shut_us_down:
> + shutdown = XFS_FORCED_SHUTDOWN(mp) ? EIO : 0;
> + if (!(tp->t_flags & XFS_TRANS_DIRTY) || shutdown) {
> + xfs_trans_unreserve_and_mod_sb(tp);
> + /*
This whole area in _xfs_trans_commit is still a complete mess.
So while touching this code, unravel this mess as well to make the
whole flow of the function simpler and clearer.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
commit e35e0c8ec9827097fced33c22bde6d97de27e79e
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Mar 8 11:28:28 2010 +1100
xfs: split out iclog writing from xfs_trans_commit()
Split the the part of xfs_trans_commit() that deals with writing the
transaction into the iclog into a separate function. This isolates the
physical commit process from the logical commit operation and makes
it easier to insert different transaction commit paths without affecting
the existing algorithm adversely.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 174d1ee41d6da930cecee3db0762299901330dc0
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Mar 8 11:26:23 2010 +1100
xfs: fix reservation release commit flag in xfs_bmap_add_attrfork()
xfs_bmap_add_attrfork() passes XFS_TRANS_PERM_LOG_RES to xfs_trans_commit()
to indicate that the commit should release the permanent log reservation
as part of the commit. This is wrong - the correct flag is
XFS_TRANS_RELEASE_LOG_RES - and it is only by the chance that both these
flags have the value of 0x4 that the code is doing the right thing.
Fix it by changing to use the correct flag.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 31534cc2027de29037b7c5e70e1dcd5e9f7e92c2
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Mar 8 11:26:03 2010 +1100
xfs: remove stale parameter from ->iop_unpin method
The staleness of a object being unpinned can be directly derived
from the object itself - there is no need to extract it from the
object then pass it as a parameter into IOP_UNPIN().
This means we can kill the XFS_LID_BUF_STALE flag - it is set,
checked and cleared in the same places XFS_BLI_STALE flag in the
xfs_buf_log_item so it is now redundant and hence safe to remove.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit aef714b534fcd0295ec5314e48f65b07da95ccba
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Mar 8 11:24:07 2010 +1100
xfs: Add inode pin counts to traces
We don't record pin counts in inode events right now, and this makes
it difficult to track down problems related to pinning inodes. Add
the pin count to the inode trace class and add trace events for
pinning and unpinning inodes.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 1d3c79733218b45a82ffc7e501ac0f1570f2a8c5
Author: Dave Chinner <dchinner at redhat.com>
Date: Tue Mar 23 10:10:00 2010 +1100
xfs: factor log item initialisation
Each log item type does manual initialisation of the log item.
Delayed logging introduces new fields that need initialisation, so
factor all the open coded initialisation into a common function
first.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 5b6293875ae883829ce9cc9ae5f37f52ba5517ce
Author: Jan Engelhardt <jengelh at medozas.de>
Date: Tue Mar 23 09:52:55 2010 +1100
xfs: add blockdev name to kthreads
This allows to see in `ps` and similar tools which kthreads are
allotted to which block device/filesystem, similar to what jbd2
does. As the process name is a fixed 16-char array, no extra
space is needed in tasks.
PID TTY STAT TIME COMMAND
2 ? S 0:00 [kthreadd]
197 ? S 0:00 \_ [jbd2/sda2-8]
198 ? S 0:00 \_ [ext4-dio-unwrit]
204 ? S 0:00 \_ [flush-8:0]
2647 ? S 0:00 \_ [xfs_mru_cache]
2648 ? S 0:00 \_ [xfslogd/0]
2649 ? S 0:00 \_ [xfsdatad/0]
2650 ? S 0:00 \_ [xfsconvertd/0]
2651 ? S 0:00 \_ [xfsbufd/ram0]
2652 ? S 0:00 \_ [xfsaild/ram0]
2653 ? S 0:00 \_ [xfssyncd/ram0]
Signed-off-by: Jan Engelhardt <jengelh at medozas.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
commit 080f4539d003b54e39eada71ff4e20705343335c
Author: Zhitong Wang <zhitong.wangzt at alibaba-inc.com>
Date: Tue Mar 23 09:51:22 2010 +1100
xfs: Fix integer overflow in fs/xfs/linux-2.6/xfs_ioctl*.c
The am_hreq.opcount field in the xfs_attrmulti_by_handle() interface
is not bounded correctly. The opcount is used to determine the size
of the buffer required. The size is bounded, but can overflow and so
the size checks may not be sufficient to catch invalid opcounts.
Fix it by catching opcount values that would cause overflows before
calculating the size.
Signed-off-by: Zhitong Wang <zhitong.wangzt at alibaba-inc.com>
Reviewed-by: Dave Chinner <david at fromorbit.com>
-----------------------------------------------------------------------
Summary of changes:
fs/xfs/linux-2.6/xfs_buf.c | 10 +-
fs/xfs/linux-2.6/xfs_buf.h | 2 +-
fs/xfs/linux-2.6/xfs_ioctl.c | 4 +
fs/xfs/linux-2.6/xfs_ioctl32.c | 4 +
fs/xfs/linux-2.6/xfs_super.c | 9 +-
fs/xfs/linux-2.6/xfs_sync.c | 2 +-
fs/xfs/linux-2.6/xfs_trace.h | 9 +-
fs/xfs/quota/xfs_dquot_item.c | 28 +-
fs/xfs/xfs_bmap.c | 2 +-
fs/xfs/xfs_buf_item.c | 55 ++--
fs/xfs/xfs_extfree_item.c | 18 +-
fs/xfs/xfs_inode.c | 2 +
fs/xfs/xfs_inode_item.c | 21 +-
fs/xfs/xfs_log.c | 668 ++++++++++++++++++++++-------------
fs/xfs/xfs_log.h | 13 +
fs/xfs/xfs_log_priv.h | 8 +
fs/xfs/xfs_trans.c | 760 +++++++++++++++++++---------------------
fs/xfs/xfs_trans.h | 5 +-
fs/xfs/xfs_trans_buf.c | 3 +-
19 files changed, 888 insertions(+), 735 deletions(-)
hooks/post-receive
--
XFS development tree
More information about the xfs
mailing list