Re: [PATCH] [RFC] remove ext3 inode from orphan list when link andunlink race

From: Eric Sandeen
Date: Fri Jan 12 2007 - 16:15:10 EST


Alex Tomas wrote:
> interesting ..
>
> I thought VFS doesn't allow concurrent operations.
> if unlink goes first, then link should wait on the
> parent's i_mutex and then found no source name.
>
> thanks, Alex

Well... I was wondering that myself, whether this race should even
happen. But the bottom of do_unlinkat looks like:

mutex_unlock(&nd.dentry->d_inode->i_mutex);
if (inode)
iput(inode); /* truncate the inode here */
exit1:
path_release(&nd);
exit:
putname(name);
return error;

so I think it's possible that link can sneak in there & find it after
the mutex is dropped...? Is this ok? :) It's certainly -happening-
anyway....

-Eric
-
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/