Re: Fix ea-in-inode default ACL creation

From: Stephen C. Tweedie
Date: Fri Jan 21 2005 - 16:41:12 EST


Hi,

On Thu, 2005-01-20 at 18:22, Andreas Gruenbacher wrote:

> When a new inode is created, ext3_new_inode sets the EXT3_STATE_NEW
> flag, which tells ext3_do_update_inode to zero out the inode before
> filling in the inode's data. When a file is created in a directory with
> a default acl, the new inode inherits the directory's default acl; this
> generates attributes. The attributes are created before
> ext3_do_update_inode is called to write out the inode. In case of
> in-inode attributes, the new inode's attributes are written, and then
> zeroed out again by ext3_do_update_inode. Bad thing.
>
> Fix this by recognizing the EXT3_STATE_NEW case in
> ext3_xattr_set_handle, and zeroing out the inode there already when
> necessary.

Ugh. It feels horrible to have to do this, but we _do_ want to clear
the raw inode, and we only want to do it once, and we have to do it on
first access to the on-disk structures. I can't see an easy way round
it that doesn't add more overhead.

Looks reasonable to me.

--Stephen

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