提交 311b9549 编写于 作者: D Dmitry Monakhov 提交者: Jan Kara

ufs: add ufs speciffic ->setattr call

generic setattr not longer responsible for quota transfer.
use ufs_setattr for all ufs's inodes.
Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: NJan Kara <jack@suse.cz>
上级 e0a5cbac
...@@ -603,7 +603,7 @@ static void ufs_set_inode_ops(struct inode *inode) ...@@ -603,7 +603,7 @@ static void ufs_set_inode_ops(struct inode *inode)
if (!inode->i_blocks) if (!inode->i_blocks)
inode->i_op = &ufs_fast_symlink_inode_operations; inode->i_op = &ufs_fast_symlink_inode_operations;
else { else {
inode->i_op = &page_symlink_inode_operations; inode->i_op = &ufs_symlink_inode_operations;
inode->i_mapping->a_ops = &ufs_aops; inode->i_mapping->a_ops = &ufs_aops;
} }
} else } else
......
...@@ -148,7 +148,7 @@ static int ufs_symlink (struct inode * dir, struct dentry * dentry, ...@@ -148,7 +148,7 @@ static int ufs_symlink (struct inode * dir, struct dentry * dentry,
if (l > UFS_SB(sb)->s_uspi->s_maxsymlinklen) { if (l > UFS_SB(sb)->s_uspi->s_maxsymlinklen) {
/* slow symlink */ /* slow symlink */
inode->i_op = &page_symlink_inode_operations; inode->i_op = &ufs_symlink_inode_operations;
inode->i_mapping->a_ops = &ufs_aops; inode->i_mapping->a_ops = &ufs_aops;
err = page_symlink(inode, symname, l); err = page_symlink(inode, symname, l);
if (err) if (err)
......
...@@ -42,4 +42,12 @@ static void *ufs_follow_link(struct dentry *dentry, struct nameidata *nd) ...@@ -42,4 +42,12 @@ static void *ufs_follow_link(struct dentry *dentry, struct nameidata *nd)
const struct inode_operations ufs_fast_symlink_inode_operations = { const struct inode_operations ufs_fast_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.follow_link = ufs_follow_link, .follow_link = ufs_follow_link,
.setattr = ufs_setattr,
};
const struct inode_operations ufs_symlink_inode_operations = {
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.setattr = ufs_setattr,
}; };
...@@ -508,7 +508,7 @@ int ufs_truncate(struct inode *inode, loff_t old_i_size) ...@@ -508,7 +508,7 @@ int ufs_truncate(struct inode *inode, loff_t old_i_size)
* - there is no way to know old size * - there is no way to know old size
* - there is no way inform user about error, if it happens in `truncate' * - there is no way inform user about error, if it happens in `truncate'
*/ */
static int ufs_setattr(struct dentry *dentry, struct iattr *attr) int ufs_setattr(struct dentry *dentry, struct iattr *attr)
{ {
struct inode *inode = dentry->d_inode; struct inode *inode = dentry->d_inode;
unsigned int ia_valid = attr->ia_valid; unsigned int ia_valid = attr->ia_valid;
......
...@@ -122,9 +122,11 @@ extern void ufs_panic (struct super_block *, const char *, const char *, ...) __ ...@@ -122,9 +122,11 @@ extern void ufs_panic (struct super_block *, const char *, const char *, ...) __
/* symlink.c */ /* symlink.c */
extern const struct inode_operations ufs_fast_symlink_inode_operations; extern const struct inode_operations ufs_fast_symlink_inode_operations;
extern const struct inode_operations ufs_symlink_inode_operations;
/* truncate.c */ /* truncate.c */
extern int ufs_truncate (struct inode *, loff_t); extern int ufs_truncate (struct inode *, loff_t);
extern int ufs_setattr(struct dentry *dentry, struct iattr *attr);
static inline struct ufs_sb_info *UFS_SB(struct super_block *sb) static inline struct ufs_sb_info *UFS_SB(struct super_block *sb)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册