diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 12:04:02 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 12:04:02 -0800 | 
| commit | bac5e54c29f352d962a2447d22735316b347b9f1 (patch) | |
| tree | 7642993fa93164835ffaa2dacd341388193f1979 /fs/jffs2 | |
| parent | 529e89430d6c0d64db8ac474cb95e68e2527c79a (diff) | |
| parent | c05c4edd876b7ae92787d1295868afcb89b6a348 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (38 commits)
  direct I/O fallback sync simplification
  ocfs: stop using do_sync_mapping_range
  cleanup blockdev_direct_IO locking
  make generic_acl slightly more generic
  sanitize xattr handler prototypes
  libfs: move EXPORT_SYMBOL for d_alloc_name
  vfs: force reval of target when following LAST_BIND symlinks (try #7)
  ima: limit imbalance msg
  Untangling ima mess, part 3: kill dead code in ima
  Untangling ima mess, part 2: deal with counters
  Untangling ima mess, part 1: alloc_file()
  O_TRUNC open shouldn't fail after file truncation
  ima: call ima_inode_free ima_inode_free
  IMA: clean up the IMA counts updating code
  ima: only insert at inode creation time
  ima: valid return code from ima_inode_alloc
  fs: move get_empty_filp() deffinition to internal.h
  Sanitize exec_permission_lite()
  Kill cached_lookup() and real_lookup()
  Kill path_lookup_open()
  ...
Trivial conflicts in fs/direct-io.c
Diffstat (limited to 'fs/jffs2')
| -rw-r--r-- | fs/jffs2/acl.c | 65 | ||||
| -rw-r--r-- | fs/jffs2/security.c | 18 | ||||
| -rw-r--r-- | fs/jffs2/xattr.c | 6 | ||||
| -rw-r--r-- | fs/jffs2/xattr_trusted.c | 18 | ||||
| -rw-r--r-- | fs/jffs2/xattr_user.c | 18 | 
5 files changed, 56 insertions, 69 deletions
| diff --git a/fs/jffs2/acl.c b/fs/jffs2/acl.c index 7edb62e97419..7cdc3196476a 100644 --- a/fs/jffs2/acl.c +++ b/fs/jffs2/acl.c @@ -350,8 +350,8 @@ int jffs2_acl_chmod(struct inode *inode)  	return rc;  } -static size_t jffs2_acl_access_listxattr(struct inode *inode, char *list, size_t list_size, -					 const char *name, size_t name_len) +static size_t jffs2_acl_access_listxattr(struct dentry *dentry, char *list, +		size_t list_size, const char *name, size_t name_len, int type)  {  	const int retlen = sizeof(POSIX_ACL_XATTR_ACCESS); @@ -360,8 +360,8 @@ static size_t jffs2_acl_access_listxattr(struct inode *inode, char *list, size_t  	return retlen;  } -static size_t jffs2_acl_default_listxattr(struct inode *inode, char *list, size_t list_size, -					  const char *name, size_t name_len) +static size_t jffs2_acl_default_listxattr(struct dentry *dentry, char *list, +		size_t list_size, const char *name, size_t name_len, int type)  {  	const int retlen = sizeof(POSIX_ACL_XATTR_DEFAULT); @@ -370,12 +370,16 @@ static size_t jffs2_acl_default_listxattr(struct inode *inode, char *list, size_  	return retlen;  } -static int jffs2_acl_getxattr(struct inode *inode, int type, void *buffer, size_t size) +static int jffs2_acl_getxattr(struct dentry *dentry, const char *name, +		void *buffer, size_t size, int type)  {  	struct posix_acl *acl;  	int rc; -	acl = jffs2_get_acl(inode, type); +	if (name[0] != '\0') +		return -EINVAL; + +	acl = jffs2_get_acl(dentry->d_inode, type);  	if (IS_ERR(acl))  		return PTR_ERR(acl);  	if (!acl) @@ -386,26 +390,15 @@ static int jffs2_acl_getxattr(struct inode *inode, int type, void *buffer, size_  	return rc;  } -static int jffs2_acl_access_getxattr(struct inode *inode, const char *name, void *buffer, size_t size) -{ -	if (name[0] != '\0') -		return -EINVAL; -	return jffs2_acl_getxattr(inode, ACL_TYPE_ACCESS, buffer, size); -} - -static int jffs2_acl_default_getxattr(struct inode *inode, const char *name, void *buffer, size_t size) -{ -	if (name[0] != '\0') -		return -EINVAL; -	return jffs2_acl_getxattr(inode, ACL_TYPE_DEFAULT, buffer, size); -} - -static int jffs2_acl_setxattr(struct inode *inode, int type, const void *value, size_t size) +static int jffs2_acl_setxattr(struct dentry *dentry, const char *name, +		const void *value, size_t size, int flags, int type)  {  	struct posix_acl *acl;  	int rc; -	if (!is_owner_or_cap(inode)) +	if (name[0] != '\0') +		return -EINVAL; +	if (!is_owner_or_cap(dentry->d_inode))  		return -EPERM;  	if (value) { @@ -420,38 +413,24 @@ static int jffs2_acl_setxattr(struct inode *inode, int type, const void *value,  	} else {  		acl = NULL;  	} -	rc = jffs2_set_acl(inode, type, acl); +	rc = jffs2_set_acl(dentry->d_inode, type, acl);   out:  	posix_acl_release(acl);  	return rc;  } -static int jffs2_acl_access_setxattr(struct inode *inode, const char *name, -				     const void *buffer, size_t size, int flags) -{ -	if (name[0] != '\0') -		return -EINVAL; -	return jffs2_acl_setxattr(inode, ACL_TYPE_ACCESS, buffer, size); -} - -static int jffs2_acl_default_setxattr(struct inode *inode, const char *name, -				      const void *buffer, size_t size, int flags) -{ -	if (name[0] != '\0') -		return -EINVAL; -	return jffs2_acl_setxattr(inode, ACL_TYPE_DEFAULT, buffer, size); -} -  struct xattr_handler jffs2_acl_access_xattr_handler = {  	.prefix	= POSIX_ACL_XATTR_ACCESS, +	.flags	= ACL_TYPE_DEFAULT,  	.list	= jffs2_acl_access_listxattr, -	.get	= jffs2_acl_access_getxattr, -	.set	= jffs2_acl_access_setxattr, +	.get	= jffs2_acl_getxattr, +	.set	= jffs2_acl_setxattr,  };  struct xattr_handler jffs2_acl_default_xattr_handler = {  	.prefix	= POSIX_ACL_XATTR_DEFAULT, +	.flags	= ACL_TYPE_DEFAULT,  	.list	= jffs2_acl_default_listxattr, -	.get	= jffs2_acl_default_getxattr, -	.set	= jffs2_acl_default_setxattr, +	.get	= jffs2_acl_getxattr, +	.set	= jffs2_acl_setxattr,  }; diff --git a/fs/jffs2/security.c b/fs/jffs2/security.c index 02c39c64ecb3..eaccee058583 100644 --- a/fs/jffs2/security.c +++ b/fs/jffs2/security.c @@ -44,26 +44,28 @@ int jffs2_init_security(struct inode *inode, struct inode *dir)  }  /* ---- XATTR Handler for "security.*" ----------------- */ -static int jffs2_security_getxattr(struct inode *inode, const char *name, -				   void *buffer, size_t size) +static int jffs2_security_getxattr(struct dentry *dentry, const char *name, +				   void *buffer, size_t size, int type)  {  	if (!strcmp(name, ""))  		return -EINVAL; -	return do_jffs2_getxattr(inode, JFFS2_XPREFIX_SECURITY, name, buffer, size); +	return do_jffs2_getxattr(dentry->d_inode, JFFS2_XPREFIX_SECURITY, +				 name, buffer, size);  } -static int jffs2_security_setxattr(struct inode *inode, const char *name, const void *buffer, -				   size_t size, int flags) +static int jffs2_security_setxattr(struct dentry *dentry, const char *name, +		const void *buffer, size_t size, int flags, int type)  {  	if (!strcmp(name, ""))  		return -EINVAL; -	return do_jffs2_setxattr(inode, JFFS2_XPREFIX_SECURITY, name, buffer, size, flags); +	return do_jffs2_setxattr(dentry->d_inode, JFFS2_XPREFIX_SECURITY, +				 name, buffer, size, flags);  } -static size_t jffs2_security_listxattr(struct inode *inode, char *list, size_t list_size, -				       const char *name, size_t name_len) +static size_t jffs2_security_listxattr(struct dentry *dentry, char *list, +		size_t list_size, const char *name, size_t name_len, int type)  {  	size_t retlen = XATTR_SECURITY_PREFIX_LEN + name_len + 1; diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c index 4b107881acd5..9e75c62c85d6 100644 --- a/fs/jffs2/xattr.c +++ b/fs/jffs2/xattr.c @@ -990,9 +990,11 @@ ssize_t jffs2_listxattr(struct dentry *dentry, char *buffer, size_t size)  		if (!xhandle)  			continue;  		if (buffer) { -			rc = xhandle->list(inode, buffer+len, size-len, xd->xname, xd->name_len); +			rc = xhandle->list(dentry, buffer+len, size-len, +					   xd->xname, xd->name_len, xd->flags);  		} else { -			rc = xhandle->list(inode, NULL, 0, xd->xname, xd->name_len); +			rc = xhandle->list(dentry, NULL, 0, xd->xname, +					   xd->name_len, xd->flags);  		}  		if (rc < 0)  			goto out; diff --git a/fs/jffs2/xattr_trusted.c b/fs/jffs2/xattr_trusted.c index 8ec5765ef348..3e5a5e356e05 100644 --- a/fs/jffs2/xattr_trusted.c +++ b/fs/jffs2/xattr_trusted.c @@ -16,24 +16,26 @@  #include <linux/mtd/mtd.h>  #include "nodelist.h" -static int jffs2_trusted_getxattr(struct inode *inode, const char *name, -				  void *buffer, size_t size) +static int jffs2_trusted_getxattr(struct dentry *dentry, const char *name, +		void *buffer, size_t size, int type)  {  	if (!strcmp(name, ""))  		return -EINVAL; -	return do_jffs2_getxattr(inode, JFFS2_XPREFIX_TRUSTED, name, buffer, size); +	return do_jffs2_getxattr(dentry->d_inode, JFFS2_XPREFIX_TRUSTED, +				 name, buffer, size);  } -static int jffs2_trusted_setxattr(struct inode *inode, const char *name, const void *buffer, -				  size_t size, int flags) +static int jffs2_trusted_setxattr(struct dentry *dentry, const char *name, +		const void *buffer, size_t size, int flags, int type)  {  	if (!strcmp(name, ""))  		return -EINVAL; -	return do_jffs2_setxattr(inode, JFFS2_XPREFIX_TRUSTED, name, buffer, size, flags); +	return do_jffs2_setxattr(dentry->d_inode, JFFS2_XPREFIX_TRUSTED, +				 name, buffer, size, flags);  } -static size_t jffs2_trusted_listxattr(struct inode *inode, char *list, size_t list_size, -				      const char *name, size_t name_len) +static size_t jffs2_trusted_listxattr(struct dentry *dentry, char *list, +		size_t list_size, const char *name, size_t name_len, int type)  {  	size_t retlen = XATTR_TRUSTED_PREFIX_LEN + name_len + 1; diff --git a/fs/jffs2/xattr_user.c b/fs/jffs2/xattr_user.c index 8bbeab90ada1..8544af67dffe 100644 --- a/fs/jffs2/xattr_user.c +++ b/fs/jffs2/xattr_user.c @@ -16,24 +16,26 @@  #include <linux/mtd/mtd.h>  #include "nodelist.h" -static int jffs2_user_getxattr(struct inode *inode, const char *name, -			       void *buffer, size_t size) +static int jffs2_user_getxattr(struct dentry *dentry, const char *name, +			       void *buffer, size_t size, int type)  {  	if (!strcmp(name, ""))  		return -EINVAL; -	return do_jffs2_getxattr(inode, JFFS2_XPREFIX_USER, name, buffer, size); +	return do_jffs2_getxattr(dentry->d_inode, JFFS2_XPREFIX_USER, +				 name, buffer, size);  } -static int jffs2_user_setxattr(struct inode *inode, const char *name, const void *buffer, -			       size_t size, int flags) +static int jffs2_user_setxattr(struct dentry *dentry, const char *name, +		const void *buffer, size_t size, int flags, int type)  {  	if (!strcmp(name, ""))  		return -EINVAL; -	return do_jffs2_setxattr(inode, JFFS2_XPREFIX_USER, name, buffer, size, flags); +	return do_jffs2_setxattr(dentry->d_inode, JFFS2_XPREFIX_USER, +				 name, buffer, size, flags);  } -static size_t jffs2_user_listxattr(struct inode *inode, char *list, size_t list_size, -				   const char *name, size_t name_len) +static size_t jffs2_user_listxattr(struct dentry *dentry, char *list, +		size_t list_size, const char *name, size_t name_len, int type)  {  	size_t retlen = XATTR_USER_PREFIX_LEN + name_len + 1; | 
