From 01e5b4e4e897fce8c7e6236bc933c9721c7ee237 Mon Sep 17 00:00:00 2001 From: Phillip Lougher Date: Mon, 17 May 2010 19:39:02 +0100 Subject: squashfs: add xattr support configure option Signed-off-by: Phillip Lougher --- fs/squashfs/xattr.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 fs/squashfs/xattr.h (limited to 'fs/squashfs/xattr.h') diff --git a/fs/squashfs/xattr.h b/fs/squashfs/xattr.h new file mode 100644 index 00000000000..4a96366bfcc --- /dev/null +++ b/fs/squashfs/xattr.h @@ -0,0 +1,45 @@ +/* + * Squashfs - a compressed read only filesystem for Linux + * + * Copyright (c) 2010 + * Phillip Lougher + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2, + * or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * xattr.h + */ + +#ifdef CONFIG_SQUASHFS_XATTRS +extern __le64 *squashfs_read_xattr_id_table(struct super_block *, u64, + u64 *, int *); +extern int squashfs_xattr_lookup(struct super_block *, unsigned int, int *, + int *, long long *); +#else +static inline __le64 *squashfs_read_xattr_id_table(struct super_block *sb, + u64 start, u64 *xattr_table_start, int *xattr_ids) +{ + ERROR("Xattrs in filesystem, these will be ignored\n"); + return ERR_PTR(-ENOTSUPP); +} + +static inline int squashfs_xattr_lookup(struct super_block *sb, + unsigned int index, int *count, int *size, long long *xattr) +{ + return 0; +} +#define squashfs_listxattr NULL +#define generic_getxattr NULL +#define squashfs_xattr_handlers NULL +#endif -- cgit v1.2.3-70-g09d2 From aa5b1894cbc700d7462947c017ca9b7bcda1e8ed Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 13 May 2010 16:32:21 -0700 Subject: squashfs: xattr_lookup sparse fix Sparse detected that unsigned pointer was being passed as int pointer. Signed-off-by: Stephen Hemminger [fixed up to deal with code refactoring] Signed-off-by: Phillip Lougher --- fs/squashfs/xattr.h | 5 +++-- fs/squashfs/xattr_id.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'fs/squashfs/xattr.h') diff --git a/fs/squashfs/xattr.h b/fs/squashfs/xattr.h index 4a96366bfcc..9da071ae181 100644 --- a/fs/squashfs/xattr.h +++ b/fs/squashfs/xattr.h @@ -25,7 +25,7 @@ extern __le64 *squashfs_read_xattr_id_table(struct super_block *, u64, u64 *, int *); extern int squashfs_xattr_lookup(struct super_block *, unsigned int, int *, - int *, long long *); + int *, unsigned long long *); #else static inline __le64 *squashfs_read_xattr_id_table(struct super_block *sb, u64 start, u64 *xattr_table_start, int *xattr_ids) @@ -35,7 +35,8 @@ static inline __le64 *squashfs_read_xattr_id_table(struct super_block *sb, } static inline int squashfs_xattr_lookup(struct super_block *sb, - unsigned int index, int *count, int *size, long long *xattr) + unsigned int index, int *count, int *size, + unsigned long long *xattr) { return 0; } diff --git a/fs/squashfs/xattr_id.c b/fs/squashfs/xattr_id.c index a74101244a9..cfb41106098 100644 --- a/fs/squashfs/xattr_id.c +++ b/fs/squashfs/xattr_id.c @@ -39,7 +39,7 @@ * Map xattr id using the xattr id look up table */ int squashfs_xattr_lookup(struct super_block *sb, unsigned int index, - int *count, int *size, long long *xattr) + int *count, unsigned int *size, unsigned long long *xattr) { struct squashfs_sb_info *msblk = sb->s_fs_info; int block = SQUASHFS_XATTR_BLOCK(index); -- cgit v1.2.3-70-g09d2