On Wed, Jul 7, 2010 at 5:27 AM, Boaz Harrosh <bharrosh@xxxxxxxxxxx> wrote: > On 07/07/2010 12:16 AM, andros@xxxxxxxxxx wrote: >> From: Andy Adamson <andros@xxxxxxxxxx> >> >> Place all layout initialization in nfs4_init_once >> >> Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> >> --- >> fs/nfs/inode.c | 19 ++++++------------- >> 1 files changed, 6 insertions(+), 13 deletions(-) >> >> diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c >> index 231cfa3..fa310b1 100644 >> --- a/fs/nfs/inode.c >> +++ b/fs/nfs/inode.c >> @@ -1361,18 +1361,6 @@ void nfs4_clear_inode(struct inode *inode) >> } >> #endif >> >> -static void pnfs_alloc_init_inode(struct nfs_inode *nfsi) >> -{ >> -#ifdef CONFIG_NFS_V4_1 >> - nfsi->layout.pnfs_layout_state = 0; >> - memset(&nfsi->layout.stateid, 0, NFS4_STATEID_SIZE); >> - nfsi->layout.roc_iomode = 0; >> - nfsi->layout.lo_cred = NULL; >> - nfsi->layout.pnfs_write_begin_pos = 0; >> - nfsi->layout.pnfs_write_end_pos = 0; >> -#endif /* CONFIG_NFS_V4_1 */ >> -} >> - >> struct inode *nfs_alloc_inode(struct super_block *sb) >> { >> struct nfs_inode *nfsi; >> @@ -1388,7 +1376,6 @@ struct inode *nfs_alloc_inode(struct super_block *sb) >> #ifdef CONFIG_NFS_V4 >> nfsi->nfs4_acl = NULL; >> #endif /* CONFIG_NFS_V4 */ >> - pnfs_alloc_init_inode(nfsi); >> return &nfsi->vfs_inode; >> } >> >> @@ -1430,6 +1417,12 @@ static inline void nfs4_init_once(struct nfs_inode *nfsi) >> INIT_LIST_HEAD(&nfsi->layout.segs); >> nfsi->layout.refcount = 0; >> nfsi->layout.ld_data = NULL; >> + nfsi->layout.pnfs_layout_state = 0; >> + memset(&nfsi->layout.stateid, 0, NFS4_STATEID_SIZE); >> + nfsi->layout.roc_iomode = 0; >> + nfsi->layout.lo_cred = NULL; >> + nfsi->layout.pnfs_write_begin_pos = 0; >> + nfsi->layout.pnfs_write_end_pos = 0; > > If we are already here. What are the rules with zeros? It is costume elsewhere in > Kernel that at construction points all zeros are just not done, if a kzalloc or memset > is guaranteed. Isn't nfs_inode zero_allocated? If not it should. Adding zero initialization > to every new member, and an extra remove line to any member remove is just maintenance > nightmare. Well, the next patch set will remove all but one zero assignment. Second; no, nfs_alloc_inode does not zero out all nfs_inode fields. > > (This patch could be much more beautiful if it was "only removed lines") The end result will be beautiful. I just wanted to break up all the changes. -->Andy > > Boaz > > >> #endif /* CONFIG_NFS_V4_1 */ >> #endif >> } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html