Re: [ANNOUNCE] Linux-2.4.32-hf32.5

From: Grant Coady
Date: Fri May 26 2006 - 15:29:21 EST


On Fri, 26 May 2006 15:27:58 -0300, Marcelo Tosatti <marcelo@xxxxxxxxx> wrote:

>may_delete() should be called before attempting to grab victim's
>i_zombie. Grant, can you please try the following?

Yep, applied against linux-2.4.32-hf32.5, boots on sempro (the box I
gave the oops info for).

Guess I'll see .33-pre4 and a -hf32.7 soon?

Cheers,
Grant.
>
>diff --git a/fs/namei.c b/fs/namei.c
>index 48bd26c..42cce98 100644
>--- a/fs/namei.c
>+++ b/fs/namei.c
>@@ -1479,19 +1479,20 @@ int vfs_unlink(struct inode *dir, struct
> {
> int error;
>
>- double_down(&dir->i_zombie, &dentry->d_inode->i_zombie);
> error = may_delete(dir, dentry, 0);
>- if (!error) {
>- error = -EPERM;
>- if (dir->i_op && dir->i_op->unlink) {
>- DQUOT_INIT(dir);
>- if (d_mountpoint(dentry))
>- error = -EBUSY;
>- else {
>- lock_kernel();
>- error = dir->i_op->unlink(dir, dentry);
>- unlock_kernel();
>- }
>+ if (error)
>+ return error;
>+
>+ double_down(&dir->i_zombie, &dentry->d_inode->i_zombie);
>+ error = -EPERM;
>+ if (dir->i_op && dir->i_op->unlink) {
>+ DQUOT_INIT(dir);
>+ if (d_mountpoint(dentry))
>+ error = -EBUSY;
>+ else {
>+ lock_kernel();
>+ error = dir->i_op->unlink(dir, dentry);
>+ unlock_kernel();
> }
> }
> double_up(&dir->i_zombie, &dentry->d_inode->i_zombie);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/