13 Jul, 2011
2 commits
-
Signed-off-by: Christoph Hellwig
Reviewed-by: Alex Elder
Reviewed-by: Dave Chinner -
xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor
the meat of those two functions into a new common helper.Signed-off-by: Christoph Hellwig
Reviewed-by: Alex Elder
Reviewed-by: Dave Chinner
20 Jan, 2010
1 commit
-
To be consistent across the codebase, convert the dirnameops to pass
the directory names by unsigned char strings.Signed-off-by: Dave Chinner
Reviewed-by: Christoph Hellwig
15 Dec, 2009
1 commit
-
Convert the old xfs tracing support that could only be used with the
out of tree kdb and xfsidbg patches to use the generic event tracer.To use it make sure CONFIG_EVENT_TRACING is enabled and then enable
all xfs trace channels by:echo 1 > /sys/kernel/debug/tracing/events/xfs/enable
or alternatively enable single events by just doing the same in one
event subdirectory, e.g.echo 1 > /sys/kernel/debug/tracing/events/xfs/xfs_ihold/enable
or set more complex filters, etc. In Documentation/trace/events.txt
all this is desctribed in more detail. To reads the events do acat /sys/kernel/debug/tracing/trace
Compared to the last posting this patch converts the tracing mostly to
the one tracepoint per callsite model that other users of the new
tracing facility also employ. This allows a very fine-grained control
of the tracing, a cleaner output of the traces and also enables the
perf tool to use each tracepoint as a virtual performance counter,
allowing us to e.g. count how often certain workloads git various
spots in XFS. Take a look athttp://lwn.net/Articles/346470/
for some examples.
Also the btree tracing isn't included at all yet, as it will require
additional core tracing features not in mainline yet, I plan to
deliver it later.And the really nice thing about this patch is that it actually removes
many lines of code while adding this nice functionality:fs/xfs/Makefile | 8
fs/xfs/linux-2.6/xfs_acl.c | 1
fs/xfs/linux-2.6/xfs_aops.c | 52 -
fs/xfs/linux-2.6/xfs_aops.h | 2
fs/xfs/linux-2.6/xfs_buf.c | 117 +--
fs/xfs/linux-2.6/xfs_buf.h | 33
fs/xfs/linux-2.6/xfs_fs_subr.c | 3
fs/xfs/linux-2.6/xfs_ioctl.c | 1
fs/xfs/linux-2.6/xfs_ioctl32.c | 1
fs/xfs/linux-2.6/xfs_iops.c | 1
fs/xfs/linux-2.6/xfs_linux.h | 1
fs/xfs/linux-2.6/xfs_lrw.c | 87 --
fs/xfs/linux-2.6/xfs_lrw.h | 45 -
fs/xfs/linux-2.6/xfs_super.c | 104 ---
fs/xfs/linux-2.6/xfs_super.h | 7
fs/xfs/linux-2.6/xfs_sync.c | 1
fs/xfs/linux-2.6/xfs_trace.c | 75 ++
fs/xfs/linux-2.6/xfs_trace.h | 1369 +++++++++++++++++++++++++++++++++++++++++
fs/xfs/linux-2.6/xfs_vnode.h | 4
fs/xfs/quota/xfs_dquot.c | 110 ---
fs/xfs/quota/xfs_dquot.h | 21
fs/xfs/quota/xfs_qm.c | 40 -
fs/xfs/quota/xfs_qm_syscalls.c | 4
fs/xfs/support/ktrace.c | 323 ---------
fs/xfs/support/ktrace.h | 85 --
fs/xfs/xfs.h | 16
fs/xfs/xfs_ag.h | 14
fs/xfs/xfs_alloc.c | 230 +-----
fs/xfs/xfs_alloc.h | 27
fs/xfs/xfs_alloc_btree.c | 1
fs/xfs/xfs_attr.c | 107 ---
fs/xfs/xfs_attr.h | 10
fs/xfs/xfs_attr_leaf.c | 14
fs/xfs/xfs_attr_sf.h | 40 -
fs/xfs/xfs_bmap.c | 507 +++------------
fs/xfs/xfs_bmap.h | 49 -
fs/xfs/xfs_bmap_btree.c | 6
fs/xfs/xfs_btree.c | 5
fs/xfs/xfs_btree_trace.h | 17
fs/xfs/xfs_buf_item.c | 87 --
fs/xfs/xfs_buf_item.h | 20
fs/xfs/xfs_da_btree.c | 3
fs/xfs/xfs_da_btree.h | 7
fs/xfs/xfs_dfrag.c | 2
fs/xfs/xfs_dir2.c | 8
fs/xfs/xfs_dir2_block.c | 20
fs/xfs/xfs_dir2_leaf.c | 21
fs/xfs/xfs_dir2_node.c | 27
fs/xfs/xfs_dir2_sf.c | 26
fs/xfs/xfs_dir2_trace.c | 216 ------
fs/xfs/xfs_dir2_trace.h | 72 --
fs/xfs/xfs_filestream.c | 8
fs/xfs/xfs_fsops.c | 2
fs/xfs/xfs_iget.c | 111 ---
fs/xfs/xfs_inode.c | 67 --
fs/xfs/xfs_inode.h | 76 --
fs/xfs/xfs_inode_item.c | 5
fs/xfs/xfs_iomap.c | 85 --
fs/xfs/xfs_iomap.h | 8
fs/xfs/xfs_log.c | 181 +----
fs/xfs/xfs_log_priv.h | 20
fs/xfs/xfs_log_recover.c | 1
fs/xfs/xfs_mount.c | 2
fs/xfs/xfs_quota.h | 8
fs/xfs/xfs_rename.c | 1
fs/xfs/xfs_rtalloc.c | 1
fs/xfs/xfs_rw.c | 3
fs/xfs/xfs_trans.h | 47 +
fs/xfs/xfs_trans_buf.c | 62 -
fs/xfs/xfs_vnodeops.c | 8
70 files changed, 2151 insertions(+), 2592 deletions(-)Signed-off-by: Christoph Hellwig
Signed-off-by: Alex Elder
29 Mar, 2009
1 commit
-
Signed-off-by: Malcolm Parsons
Reviewed-by: Christoph Hellwig
07 Mar, 2009
1 commit
-
Fix this sparse warning:
fs/xfs/xfs_da_btree.c:1550:26: warning: symbol 'xfs_default_nameops' was not declared. Should it be static?Signed-off-by: Hannes Eder
Reviewed-by: Christoph Hellwig
Signed-off-by: Felix Blyakher
09 Feb, 2009
1 commit
-
Just another set of types obsfucating the code, remove them.
Signed-off-by: Christoph Hellwig
Reviewed-by: Dave Chinner
30 Oct, 2008
2 commits
-
SGI-PV: 986558
SGI-Modid: xfs-linux-melb:xfs-kern:32231a
Signed-off-by: Barry Naujok
Signed-off-by: Christoph Hellwig
Signed-off-by: Lachlan McIlroy -
SGI-PV: 981498
SGI-Modid: xfs-linux-melb:xfs-kern:32002a
Signed-off-by: Barry Naujok
Signed-off-by: Christoph Hellwig
Signed-off-by: Lachlan McIlroy
28 Jul, 2008
3 commits
-
This implements the code to store the actual filename found during a
lookup in the dentry cache and to avoid multiple entries in the dcache
pointing to the same inode.To avoid polluting the dcache, we implement a new directory inode
operations for lookup. xfs_vn_ci_lookup() stores the correct case name in
the dcache.The "actual name" is only allocated and returned for a case- insensitive
match and not an actual match.Another unusual interaction with the dcache is not storing negative
dentries like other filesystems doing a d_add(dentry, NULL) when an ENOENT
is returned. During the VFS lookup, if a dentry returned has no inode,
dput is called and ENOENT is returned. By not doing a d_add, this actually
removes it completely from the dcache to be reused. create/rename have to
be modified to support unhashed dentries being passed in.SGI-PV: 981521
SGI-Modid: xfs-linux-melb:xfs-kern:31208aSigned-off-by: Barry Naujok
Signed-off-by: Christoph Hellwig -
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
07 Feb, 2008
1 commit
-
These are mostly locking annotations, marking things static, casts where
needed and declaring stuff in header files.SGI-PV: 971186
SGI-Modid: xfs-linux-melb:xfs-kern:30002aSigned-off-by: David Chinner
Signed-off-by: Christoph Hellwig
Signed-off-by: Lachlan McIlroy
10 Feb, 2007
1 commit
-
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
20 Jun, 2006
1 commit
-
pure bloat.
SGI-PV: 952969
SGI-Modid: xfs-linux-melb:xfs-kern:26251aSigned-off-by: Nathan Scott
17 Mar, 2006
3 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
02 Nov, 2005
3 commits
-
boilerplate.
SGI-PV: 913862
SGI-Modid: xfs-linux:xfs-kern:23903aSigned-off-by: Nathan Scott
-
SGI-PV: 943122
SGI-Modid: xfs-linux:xfs-kern:23901aSigned-off-by: Nathan Scott
-
the FreeBSD porters.
SGI-PV: 942906
SGI-Modid: xfs-linux:xfs-kern:23845aSigned-off-by: Nathan Scott
21 Jun, 2005
1 commit
-
SGI-PV: 936255
SGI-Modid: xfs-linux:xfs-kern:192760aSigned-off-by: Christoph Hellwig
Signed-off-by: Nathan Scott
17 Apr, 2005
1 commit
-
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.Let it rip!