Re: [PATCH] get_empty_inode() cleanup

From: Tigran Aivazian (tigran@veritas.com)
Date: Thu Nov 16 2000 - 07:44:06 EST


On Thu, 16 Nov 2000, Tigran Aivazian wrote:

> On Thu, 16 Nov 2000, Alexander Viro wrote:
>
> > Almost all (== all filesystem and then some) callers of
> > get_empty_inode() follow it with
> > inode->i_sb = some_sb;
> > inode->i_dev = some_sb->s_dev;
> > Some of them do it twice for no good reason (assign the same value,
> > even though neither ->i_sb nor ->i_dev could change in interval).
> > Some of them duplicate the initializations already done by get_empty_inode()
> > (e.g. ->i_size to 0, ->i_nlink to 1, etc.).
> >
> > Patch below adds an inlined function
> > struct inode *new_inode(struct super_block *sb)
> > {
> > struct inode *inode = get_empty_inode();
> > if (inode) {
> > inode->i_sb = sb;
> > inode->i_dev = sb->s_dev;
> > }
> > return inode;
> > }
>
> Alexander,
>
> IMHO, instead of adding a new function, it is cleaner to just add the 'sb'
> argument to get_empty_inode() and those who do not wish to pass it should
> just pass NULL. Checking if(sb) inside it is easier than making yet
> another function call, maybe.
>

on the other hand, even 1 minute's thought reveals that making strict
logical separation between "consumers of inode with sb" and "consumers of
inode without sb" is probably worth the overhead of an extra function
call. So, I don't strongly feel about the above... maybe you are right :)

Regards,
Tigran

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



This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:10 EST