19 Jan, 2009
1 commit
-
Remove the last of the macros-defined-to-static-functions.
Signed-off-by: Eric Sandeen
Reviewed-by: Christoph Hellwig
Signed-off-by: Lachlan McIlroy
10 Nov, 2008
1 commit
-
When we create a directory, we reserve a number of blocks for the maximum
possible expansion of of the directory due to various btree splits,
freespace allocation, etc. Unfortunately, each allocation is not reflected
in the total number of blocks still available to the transaction, so the
maximal reservation is used over and over again.This leads to problems where an allocation group has only enough blocks
for *some* of the allocations required for the directory modification.
After the first N allocations, the remaining blocks in the allocation
group drops below the total reservation, and subsequent allocations fail
because the allocator will not allow the allocation to proceed if the AG
does not have the enough blocks available for the entire allocation total.This results in an ENOSPC occurring after an allocation has already
occurred. This results in aborting the directory operation (leaving the
directory in an inconsistent state) and cancelling a dirty transaction,
which results in a filesystem shutdown.Avoid the problem by reflecting the number of blocks allocated in any
directory expansion in the total number of blocks available to the
modification in progress. This prevents a directory modification from
being aborted part way through with an ENOSPC.SGI-PV: 988144
SGI-Modid: xfs-linux-melb:xfs-kern:32340a
Signed-off-by: David Chinner
Signed-off-by: Lachlan McIlroy
28 Jul, 2008
4 commits
-
Currently the xfs module init/exit code is a mess. It's farmed out over a
lot of function with very little error checking. This patch makes sure we
propagate all initialization failures properly and clean up after them.
Various runtime initializations are replaced with compile-time
initializations where possible to make this easier. The exit path is
similarly consolidated.There's now split out function to create/destroy the kmem zones and
alloc/free the trace buffers. I've also changed the ktrace allocations to
KM_MAYFAIL and handled errors resulting from that.And yes, we really should replace the XFS_*_TRACE ifdefs with a single
XFS_TRACE..SGI-PV: 976035
SGI-Modid: xfs-linux-melb:xfs-kern:31354a
Signed-off-by: Christoph Hellwig
Signed-off-by: Niv Sardi
Signed-off-by: Lachlan McIlroy -
The end of the xfs_da_args structure has 4 unsigned char fields for
true/false information on directory and attr operations using the
xfs_da_args structure.The following converts these 4 into a op_flags field that uses the first 4
bits for these fields and allows expansion for future operation
information (eg. case-insensitive lookup request).SGI-PV: 981520
SGI-Modid: xfs-linux-melb:xfs-kern:31206aSigned-off-by: Barry Naujok
Signed-off-by: Christoph Hellwig -
Adds two pieces of functionality for the basis of case-insensitive support
in XFS:1. A comparison result enumerated type: xfs_dacmp. It represents an
exact match, case-insensitive match or no match at all. This patch
only implements different and exact results.
2. xfs_nameops vector for specifying how to perform the hash generation
of filenames and comparision methods. In this patch the hash vector
points to the existing xfs_da_hashname function and the comparison
method does a length compare, and if the same, does a memcmp and
return the xfs_dacmp result.
All filename functions that use the hash (create, lookup remove, rename,
etc) now use the xfs_nameops.hashname function and all directory lookup
functions also use the xfs_nameops.compname function.The lookup functions also handle case-insensitive results even though the
default comparison function cannot return that. And important aspect of
the lookup functions is that an exact match always has precedence over a
case-insensitive. So while a case-insensitive match is found, we have to
keep looking just in case there is an exact match. In the meantime, the
info for the first case-insensitive match is retained if no exact match is
found.SGI-PV: 981519
SGI-Modid: xfs-linux-melb:xfs-kern:31205aSigned-off-by: Barry Naujok
Signed-off-by: Christoph Hellwig -
kmem_free() function takes (ptr, size) arguments but doesn't actually use
second one.This patch removes size argument from all callsites.
SGI-PV: 981498
SGI-Modid: xfs-linux-melb:xfs-kern:31050aSigned-off-by: Denys Vlasenko
Signed-off-by: David Chinner
Signed-off-by: Lachlan McIlroy
14 Feb, 2008
1 commit
-
remove beX_add functions and replace all uses with beX_add_cpu
Signed-off-by: Marcin Slusarz
Cc: Mark Fasheh
Reviewed-by: Dave Chinner
Cc: Timothy Shimmin
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Feb, 2008
1 commit
-
Un-obfuscate dabuf_global_lock, remove mutex_lock->spin_lock macros, call
spin_lock directly, remove extraneous cookie holdover from old xfs code,
and change lock type to spinlock_t.SGI-PV: 970382
SGI-Modid: xfs-linux-melb:xfs-kern:29744aSigned-off-by: Eric Sandeen
Signed-off-by: Donald Douwsma
Signed-off-by: Tim Shimmin
05 Sep, 2007
1 commit
-
- in xfs_probe_cluster rename the inner len to pg_len. There's no harm
here because the outer len isn't used after the inner len comes into
existence but it keeps the code clean.
- in xfs_da_do_buf remove the inner i because they don't overlap
and they are both the same type.SGI-PV: 968555
SGI-Modid: xfs-linux-melb:xfs-kern:29311aSigned-off-by: Christoph Hellwig
Signed-off-by: David Chinner
Signed-off-by: Tim Shimmin
10 Feb, 2007
2 commits
-
Patch provided by Eric Sandeen (sandeen@sandeen.net).
SGI-PV: 960897
SGI-Modid: xfs-linux-melb:xfs-kern:28038aSigned-off-by: Eric Sandeen
Signed-off-by: David Chinner
Signed-off-by: Tim Shimmin -
SGI-PV: 954580
SGI-Modid: xfs-linux-melb:xfs-kern:27702aSigned-off-by: Lachlan McIlroy
Signed-off-by: Christoph Hellwig
Signed-off-by: Tim Shimmin
28 Sep, 2006
1 commit
-
positives.
SGI-PV: 955502
SGI-Modid: xfs-linux-melb:xfs-kern:26805aSigned-off-by: Nathan Scott
Signed-off-by: Tim Shimmin
20 Jun, 2006
1 commit
-
pure bloat.
SGI-PV: 952969
SGI-Modid: xfs-linux-melb:xfs-kern:26251aSigned-off-by: Nathan Scott
09 Jun, 2006
3 commits
-
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25808aSigned-off-by: Christoph Hellwig
Signed-off-by: Al Viro
Signed-off-by: Nathan Scott -
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25807aSigned-off-by: Christoph Hellwig
Signed-off-by: Al Viro
Signed-off-by: Nathan Scott -
the range spanned by modifications to the in-core extent map. Add
XFS_BUNMAPI() and XFS_SWAP_EXTENTS() macros that call xfs_bunmapi() and
xfs_swap_extents() via the ioops vector. Change all calls that may modify
the in-core extent map for the data fork to go through the ioops vector.
This allows a cache of extent map data to be kept in sync.SGI-PV: 947615
SGI-Modid: xfs-linux-melb:xfs-kern:209226aSigned-off-by: Olaf Weber
Signed-off-by: Nathan Scott
29 Mar, 2006
1 commit
-
these typos.
SGI-PV: 904196
SGI-Modid: xfs-linux-melb:xfs-kern:25539aSigned-off-by: Nathan Scott
17 Mar, 2006
7 commits
-
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25505aSigned-off-by: Christoph Hellwig
Signed-off-by: Nathan Scott -
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25504aSigned-off-by: Christoph Hellwig
Signed-off-by: Nathan Scott -
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25495aSigned-off-by: Christoph Hellwig
Signed-off-by: Nathan Scott -
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25493aSigned-off-by: Christoph Hellwig
Signed-off-by: Nathan Scott -
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25492aSigned-off-by: Christoph Hellwig
Signed-off-by: Nathan Scott -
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25485aSigned-off-by: Christoph Hellwig
Signed-off-by: Nathan Scott -
SGI-PV: 943272
SGI-Modid: xfs-linux-melb:xfs-kern:25484aSigned-off-by: Nathan Scott