aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2008-10-14 09:43:29 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2009-01-05 02:38:46 -0500
commite9079cce201784632aed4b1a3121ee38c1ced0b6 (patch)
tree6d99fc45afb3889e5835d713948226d7548d6750 /include/linux
parentfe0bdec68b77020281dc814805edfe594ae89e0f (diff)
GFS2: Support for FIEMAP ioctl
This patch implements the FIEMAP ioctl for GFS2. We can use the generic code (aside from a lock order issue, solved as per Ted Tso's suggestion) for which I've introduced a new variant of the generic function. We also have one exception to deal with, namely stuffed files, so we do that "by hand", setting all the required flags. This has been tested with a modified (I could only find an old version) of Eric's test program, and appears to work correctly. This patch does not currently support FIEMAP of xattrs, but the plan is to add that feature at some future point. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Cc: Theodore Tso <tytso@mit.edu> Cc: Eric Sandeen <sandeen@redhat.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/fs.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index f2a3010140e3..e34bc6925fdf 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2059,6 +2059,9 @@ extern int vfs_fstat(unsigned int, struct kstat *);
2059 2059
2060extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, 2060extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
2061 unsigned long arg); 2061 unsigned long arg);
2062extern int __generic_block_fiemap(struct inode *inode,
2063 struct fiemap_extent_info *fieinfo, u64 start,
2064 u64 len, get_block_t *get_block);
2062extern int generic_block_fiemap(struct inode *inode, 2065extern int generic_block_fiemap(struct inode *inode,
2063 struct fiemap_extent_info *fieinfo, u64 start, 2066 struct fiemap_extent_info *fieinfo, u64 start,
2064 u64 len, get_block_t *get_block); 2067 u64 len, get_block_t *get_block);