patch-2.4.11-dontuse linux/fs/ext2/inode.c
Next file: linux/fs/ext2/super.c
Previous file: linux/fs/ext2/ialloc.c
Back to the patch index
Back to the overall index
- Lines: 93
- Date:
Fri Oct 5 12:23:53 2001
- Orig file:
v2.4.10/linux/fs/ext2/inode.c
- Orig date:
Sun Sep 23 11:41:00 2001
diff -u --recursive --new-file v2.4.10/linux/fs/ext2/inode.c linux/fs/ext2/inode.c
@@ -28,6 +28,7 @@
#include <linux/smp_lock.h>
#include <linux/sched.h>
#include <linux/highuid.h>
+#include <linux/quotaops.h>
static int ext2_update_inode(struct inode * inode, int do_sync);
@@ -445,7 +446,7 @@
/* Verify that place we are splicing to is still there and vacant */
- /* Writer: pointers, ->i_next_alloc*, ->i_blocks */
+ /* Writer: pointers, ->i_next_alloc* */
if (!verify_chain(chain, where-1) || *where->p)
/* Writer: end */
goto changed;
@@ -455,7 +456,6 @@
*where->p = where->key;
inode->u.ext2_i.i_next_alloc_block = block;
inode->u.ext2_i.i_next_alloc_goal = le32_to_cpu(where[num-1].key);
- inode->i_blocks += num * inode->i_sb->s_blocksize/512;
/* Writer: end */
@@ -586,10 +586,6 @@
{
return generic_block_bmap(mapping,block,ext2_get_block);
}
-static int ext2_direct_IO(int rw, struct inode * inode, struct kiobuf * iobuf, unsigned long blocknr, int blocksize)
-{
- return generic_direct_IO(rw, inode, iobuf, blocknr, blocksize, ext2_get_block);
-}
struct address_space_operations ext2_aops = {
readpage: ext2_readpage,
writepage: ext2_writepage,
@@ -597,7 +593,6 @@
prepare_write: ext2_prepare_write,
commit_write: generic_commit_write,
bmap: ext2_bmap,
- direct_IO: ext2_direct_IO,
};
/*
@@ -707,7 +702,6 @@
*/
static inline void ext2_free_data(struct inode *inode, u32 *p, u32 *q)
{
- int blocks = inode->i_sb->s_blocksize / 512;
unsigned long block_to_free = 0, count = 0;
unsigned long nr;
@@ -721,9 +715,6 @@
else if (block_to_free == nr - count)
count++;
else {
- /* Writer: ->i_blocks */
- inode->i_blocks -= blocks * count;
- /* Writer: end */
mark_inode_dirty(inode);
ext2_free_blocks (inode, block_to_free, count);
free_this:
@@ -733,9 +724,6 @@
}
}
if (count > 0) {
- /* Writer: ->i_blocks */
- inode->i_blocks -= blocks * count;
- /* Writer: end */
mark_inode_dirty(inode);
ext2_free_blocks (inode, block_to_free, count);
}
@@ -780,9 +768,6 @@
(u32*)bh->b_data + addr_per_block,
depth);
bforget(bh);
- /* Writer: ->i_blocks */
- inode->i_blocks -= inode->i_sb->s_blocksize / 512;
- /* Writer: end */
ext2_free_blocks(inode, nr, 1);
mark_inode_dirty(inode);
}
@@ -1182,7 +1167,9 @@
goto out;
retval = inode_change_ok(inode, iattr);
- if (retval != 0)
+ if (retval != 0 || (((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
+ (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) &&
+ DQUOT_TRANSFER(inode, iattr)))
goto out;
inode_setattr(inode, iattr);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)