Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84695ffe authored by Al Viro's avatar Al Viro
Browse files

Merge getxattr prototype change into work.lookups

The rest of work.xattr stuff isn't needed for this branch
parents bf162006 ce23e640
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -525,3 +525,9 @@ in your dentry operations instead.
	set_delayed_call() where it used to set *cookie.
	->put_link() is gone - just give the destructor to set_delayed_call()
	in ->get_link().
--
[mandatory]
	->getxattr() and xattr_handler.get() get dentry and inode passed separately.
	dentry might be yet to be attached to inode, so do _not_ use its ->d_inode
	in the instances.  Rationale: !@#!@# security_d_instantiate() needs to be
	called before we attach dentry to inode.
+2 −2
Original line number Diff line number Diff line
@@ -1042,8 +1042,8 @@ static inline __u64 ll_file_maxbytes(struct inode *inode)
/* llite/xattr.c */
int ll_setxattr(struct dentry *dentry, const char *name,
		const void *value, size_t size, int flags);
ssize_t ll_getxattr(struct dentry *dentry, const char *name,
		    void *buffer, size_t size);
ssize_t ll_getxattr(struct dentry *dentry, struct inode *inode,
		    const char *name, void *buffer, size_t size);
ssize_t ll_listxattr(struct dentry *dentry, char *buffer, size_t size);
int ll_removexattr(struct dentry *dentry, const char *name);

+2 −4
Original line number Diff line number Diff line
@@ -451,11 +451,9 @@ int ll_getxattr_common(struct inode *inode, const char *name,
	return rc;
}

ssize_t ll_getxattr(struct dentry *dentry, const char *name,
		    void *buffer, size_t size)
ssize_t ll_getxattr(struct dentry *dentry, struct inode *inode,
		    const char *name, void *buffer, size_t size)
{
	struct inode *inode = d_inode(dentry);

	LASSERT(inode);
	LASSERT(name);

+4 −4
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ static struct posix_acl *v9fs_get_cached_acl(struct inode *inode, int type)
	 * instantiating the inode (v9fs_inode_from_fid)
	 */
	acl = get_cached_acl(inode, type);
	BUG_ON(acl == ACL_NOT_CACHED);
	BUG_ON(is_uncached_acl(acl));
	return acl;
}

@@ -213,8 +213,8 @@ int v9fs_acl_mode(struct inode *dir, umode_t *modep,
}

static int v9fs_xattr_get_acl(const struct xattr_handler *handler,
			      struct dentry *dentry, const char *name,
			      void *buffer, size_t size)
			      struct dentry *dentry, struct inode *inode,
			      const char *name, void *buffer, size_t size)
{
	struct v9fs_session_info *v9ses;
	struct posix_acl *acl;
@@ -227,7 +227,7 @@ static int v9fs_xattr_get_acl(const struct xattr_handler *handler,
	if ((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT)
		return v9fs_xattr_get(dentry, handler->name, buffer, size);

	acl = v9fs_get_cached_acl(d_inode(dentry), handler->flags);
	acl = v9fs_get_cached_acl(inode, handler->flags);
	if (IS_ERR(acl))
		return PTR_ERR(acl);
	if (acl == NULL)
+1 −1
Original line number Diff line number Diff line
@@ -1071,7 +1071,7 @@ v9fs_vfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
	if (IS_ERR(st))
		return PTR_ERR(st);

	v9fs_stat2inode(st, d_inode(dentry), d_inode(dentry)->i_sb);
	v9fs_stat2inode(st, d_inode(dentry), dentry->d_sb);
	generic_fillattr(d_inode(dentry), stat);

	p9stat_free(st);
Loading