Re: Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate)

From: Jan Kara
Date: Wed Aug 10 2005 - 08:07:27 EST


Hi,

> I just applied the patch submitted by Jan Kara:
> http://bugzilla.kernel.org/show_bug.cgi?id=4771#c3
> I dont know yet if it solves the problem :)
I actually should cure your problem but can have some unexpected
sideffects. Please try an attached patch (it's the new one I posted
to bugzilla) - that should be a better fix.

Honza
--
Jan Kara <jack@xxxxxxx>
SuSE CR Labs
Initialize key object ID in inode so that we don't try to remove the inode
when we fail on some checks even before we manage to allocate something.

Signed-off-by: Jan Kara <jack@xxxxxxx>

diff -rupX /home/jack/.kerndiffexclude linux-2.6.13-rc6/fs/reiserfs/namei.c linux-2.6.13-rc6-reiser_create_fix/fs/reiserfs/namei.c
--- linux-2.6.13-rc6/fs/reiserfs/namei.c 2005-08-12 10:39:25.000000000 +0200
+++ linux-2.6.13-rc6-reiser_create_fix/fs/reiserfs/namei.c 2005-08-12 10:39:07.000000000 +0200
@@ -593,6 +593,9 @@ static int new_inode_init(struct inode *
*/
inode->i_uid = current->fsuid;
inode->i_mode = mode;
+ /* Make inode invalid - just in case we are going to drop it before
+ * the initialization happens */
+ INODE_PKEY(inode)->k_objectid = 0;

if (dir->i_mode & S_ISGID) {
inode->i_gid = dir->i_gid;