Skip to content

Commit

Permalink
add missing setattr methods
Browse files Browse the repository at this point in the history
For the new truncate sequence every filesystem that wants to truncate on-disk
state needs a seattr method.  Convert the remaining filesystems that implement
the truncate inode operation to have its own setattr method.

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Al Viro <[email protected]>
  • Loading branch information
Christoph Hellwig authored and Al Viro committed Aug 9, 2010
1 parent 155130a commit d39aae9
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 0 deletions.
12 changes: 12 additions & 0 deletions fs/hfsplus/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -290,9 +290,21 @@ static int hfsplus_file_release(struct inode *inode, struct file *file)
return 0;
}

static int hfsplus_setattr(struct dentry *dentry, struct iattr *attr)
{
struct inode *inode = dentry->d_inode;
int error;

error = inode_change_ok(inode, attr);
if (error)
return error;
return inode_setattr(inode, attr);
}

static const struct inode_operations hfsplus_file_inode_operations = {
.lookup = hfsplus_file_lookup,
.truncate = hfsplus_file_truncate,
.setattr = hfsplus_setattr,
.setxattr = hfsplus_setxattr,
.getxattr = hfsplus_getxattr,
.listxattr = hfsplus_listxattr,
Expand Down
12 changes: 12 additions & 0 deletions fs/minix/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,19 @@ const struct file_operations minix_file_operations = {
.splice_read = generic_file_splice_read,
};

static int minix_setattr(struct dentry *dentry, struct iattr *attr)
{
struct inode *inode = dentry->d_inode;
int error;

error = inode_change_ok(inode, attr);
if (error)
return error;
return inode_setattr(inode, attr);
}

const struct inode_operations minix_file_inode_operations = {
.truncate = minix_truncate,
.setattr = minix_setattr,
.getattr = minix_getattr,
};
12 changes: 12 additions & 0 deletions fs/omfs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,19 @@ const struct file_operations omfs_file_operations = {
.splice_read = generic_file_splice_read,
};

static int omfs_setattr(struct dentry *dentry, struct iattr *attr)
{
struct inode *inode = dentry->d_inode;
int error;

error = inode_change_ok(inode, attr);
if (error)
return error;
return inode_setattr(inode, attr);
}

const struct inode_operations omfs_file_inops = {
.setattr = omfs_setattr,
.truncate = omfs_truncate
};

Expand Down
12 changes: 12 additions & 0 deletions fs/sysv/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,19 @@ const struct file_operations sysv_file_operations = {
.splice_read = generic_file_splice_read,
};

static int sysv_setattr(struct dentry *dentry, struct iattr *attr)
{
struct inode *inode = dentry->d_inode;
int error;

error = inode_change_ok(inode, attr);
if (error)
return error;
return inode_setattr(inode, attr);
}

const struct inode_operations sysv_file_inode_operations = {
.truncate = sysv_truncate,
.setattr = sysv_setattr,
.getattr = sysv_getattr,
};
12 changes: 12 additions & 0 deletions fs/udf/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,18 @@ const struct file_operations udf_file_operations = {
.llseek = generic_file_llseek,
};

static int udf_setattr(struct dentry *dentry, struct iattr *attr)
{
struct inode *inode = dentry->d_inode;
int error;

error = inode_change_ok(inode, attr);
if (error)
return error;
return inode_setattr(inode, attr);
}

const struct inode_operations udf_file_inode_operations = {
.setattr = udf_setattr,
.truncate = udf_truncate,
};

0 comments on commit d39aae9

Please sign in to comment.