patch-2.4.4 linux/fs/reiserfs/file.c
Next file: linux/fs/reiserfs/fix_node.c
Previous file: linux/fs/reiserfs/bitmap.c
Back to the patch index
Back to the overall index
- Lines: 33
- Date:
Thu Apr 26 10:44:10 2001
- Orig file:
v2.4.3/linux/fs/reiserfs/file.c
- Orig date:
Mon Jan 15 13:23:01 2001
diff -u --recursive --new-file v2.4.3/linux/fs/reiserfs/file.c linux/fs/reiserfs/file.c
@@ -106,6 +106,24 @@
return ( n_err < 0 ) ? -EIO : 0;
}
+static int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) {
+ struct inode *inode = dentry->d_inode ;
+ int error ;
+ if (attr->ia_valid & ATTR_SIZE) {
+ /* version 2 items will be caught by the s_maxbytes check
+ ** done for us in vmtruncate
+ */
+ if (inode_items_version(inode) == ITEM_VERSION_1 &&
+ attr->ia_size > MAX_NON_LFS)
+ return -EFBIG ;
+ }
+
+ error = inode_change_ok(inode, attr) ;
+ if (!error)
+ inode_setattr(inode, attr) ;
+
+ return error ;
+}
struct file_operations reiserfs_file_operations = {
read: generic_file_read,
@@ -119,6 +137,7 @@
struct inode_operations reiserfs_file_inode_operations = {
truncate: reiserfs_vfs_truncate_file,
+ setattr: reiserfs_setattr,
};
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)