> + /* Initialise the newly allocated inode. */ > + return xfs_init_new_inode(*tpp, dp, ino, mode, nlink, rdev, prid); IMHO this comment is not overly helpful.. > + if (IS_ERR(ip)) { > + error = PTR_ERR(ip); > + ip = NULL; > goto out_trans_cancel; > + } And the calling convention with the ERR_PTR return does not seem to fit the call chain to well. But those are minor details, so: > STATIC int > xfs_qm_qino_alloc( > - xfs_mount_t *mp, > - xfs_inode_t **ip, > - uint flags) > + struct xfs_mount *mp, > + struct xfs_inode **ipp, > + unsigned int flags) > { > xfs_trans_t *tp; > int error; > bool need_alloc = true; Why do you reindent and de-typdefify the arguments, but not the local variables? All the stuff below also seems to deal with the fact that the old return ip by reference calling convention seems to actually work better with the code base..