This is version 2 of fix log space calculation if the log stripe unit is
I changed the subject in this round since there are many changes belong to the
space reservation interface adjustment.
Major changes of v2->v1:
- The interface of xfs_trans_reserve() has been changed to:
xfs_trans_reserve(struct xfs_trans *tp, xfs_trans_res *tres, int blocks, int
- Introduce a new inline helper m_tresp() to fetch pointer of
so that we don't need a big code change if someday we rename m_reservations
- Introduce xfs_log_rlimit.[c|h] to isolate the maximum transaction log space
related routines. There are two functions can be shared with the user space
- Calculate the maximum length in bytes that would be required for a local
as large attributes out of line are not logged according to Dave's advise.
- Don't return if the given log space at mount time is too small, drop a
message via syslog
in critical level instead.
xfstests/generic and xfs specified test cases(except a dozens of cases need a
tap device or
xfsdump) works without panic.
[PATCH 1/8] xfs: Introduce a new structure to hold transaction reservation items
[PATCH 2/8] xfs: Introduce tr_fsyncts to m_reservation
[PATCH 3/8] xfs: Make writeid transaction use tr_writeid
[PATCH 4/8] xfs: Refactor xfs_trans_reserve() interface
[PATCH 5/8] xfs: Get rid of all XFS_XXX_LOG_RES() macros
[PATCH 6/8] xfs: Refactor xfs_ticket_alloc() to extract a new helper
[PATCH 7/8] xfs: Add xfs_log_rlimit.[c|h]
[PATCH 8/8] xfs: Validate log space at mount time
The patches of user space sync up with those kernel space change will be sent
out later as I
have to go out to deal with a urgent thing right now.