[broken] Re: [patch-2.4.0-test5-pre3] struct inode shortened

From: Tigran Aivazian (tigran@veritas.com)
Date: Fri Jul 21 2000 - 04:19:30 EST


Hi,

Actually, the idea of union-ing things is probably broken anyway. Imagine
clear_inode() is called on a pipe (because pipefs does iput(), e.g. from
get_pipe_inode()):

        if (inode->i_bdev) {
                bdput(inode->i_bdev);
                inode->i_bdev = NULL;
        }

in the union version, for a pipe, inode->i_bdev may well be not NULL and
so bdput() will be called illegally. So, my yesterday's patch appears to
be broken. (which is why I left Linus in cc to this message, I would not
have wasted his time otherwise).

Regards,
Tigran

On Fri, 21 Jul 2000, Tigran Aivazian wrote:

> On Fri, 21 Jul 2000, Neil Brown wrote:
> > Only one of i_rdev and i_size are needed at a time, so we could union
> > them.
>
> can't be done quietly. Too much noise generated by the fact that
> ext2_inode_info uses the field called i_size so if one defines i_size as
> u1.u_size then ext2_fs_i.h will stop compiling. So, one would have to
> rename ext2_inode_info->i_size to something else, i_fsize?
>
> Regards,
> Tigran
>
>

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



This archive was generated by hypermail 2b29 : Sun Jul 23 2000 - 21:00:15 EST