Commit
431547b3 (v2.6.33) changed the generic xattr handlers to
use dentry->d_sb rather than dentry->d_inode->i_sb.
This patch ensures it's set before calling the xattr ops, which filter
through the generic xattr handlers.
Really, since any call into the kernel using a dentry can deref d_sb,
it should be set so we'll set it for fsync as well.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: James Simmons <uja.ornl@gmail.com>
Change-Id: I0ce38970cd839a220f852f96632b473011adbdc6
Reviewed-on: http://review.whamcloud.com/5120
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
const char *name, void *buf, int len)
{
dentry->d_inode = inode;
+ dentry->d_sb = inode->i_sb;
return inode->i_op->getxattr(dentry, name, buf, len);
}
return -EACCES;
dentry->d_inode = inode;
+ dentry->d_sb = inode->i_sb;
return inode->i_op->listxattr(dentry, buf->lb_buf, buf->lb_len);
}
ll_vfs_dq_init(inode);
dentry->d_inode = inode;
+ dentry->d_sb = inode->i_sb;
rc = inode->i_op->removexattr(dentry, name);
return rc;
}
ENTRY;
dentry->d_inode = inode;
+ dentry->d_sb = inode->i_sb;
file->f_dentry = dentry;
file->f_mapping = inode->i_mapping;
file->f_op = inode->i_fop;
ll_vfs_dq_init(inode);
dentry->d_inode = inode;
+ dentry->d_sb = inode->i_sb;
return inode->i_op->setxattr(dentry, name, buf, buflen, fl);
}
LASSERT(inode);
dentry->d_inode = inode;
+ dentry->d_sb = inode->i_sb;
file->f_dentry = dentry;
file->f_mapping = inode->i_mapping;
file->f_op = inode->i_fop;