Diff for /xfs-linux/xfs_inode.c between versions 1.465 and 1.466

version 1.465, 2007/07/09 06:12:03 version 1.466, 2007/07/09 06:12:55
Line 1078  xfs_iread_extents( Line 1078  xfs_iread_extents(
  * also returns the [locked] bp pointing to the head of the freelist   * also returns the [locked] bp pointing to the head of the freelist
  * as ialloc_context.  The caller should hold this buffer across   * as ialloc_context.  The caller should hold this buffer across
  * the commit and pass it back into this routine on the second call.   * the commit and pass it back into this routine on the second call.
    *
    * If we are allocating quota inodes, we do not have a parent inode
    * to attach to or associate with (i.e. pip == NULL) because they
    * are not linked into the directory structure - they are attached
    * directly to the superblock - and so have no parent.
  */   */
 int  int
 xfs_ialloc(  xfs_ialloc(
Line 1103  xfs_ialloc( Line 1108  xfs_ialloc(
          * Call the space management code to pick           * Call the space management code to pick
          * the on-disk inode to be allocated.           * the on-disk inode to be allocated.
          */           */
         error = xfs_dialloc(tp, pip->i_ino, mode, okalloc,          error = xfs_dialloc(tp, pip ? pip->i_ino : 0, mode, okalloc,
                             ialloc_context, call_again, &ino);                              ialloc_context, call_again, &ino);
         if (error != 0) {          if (error != 0) {
                 return error;                  return error;
Line 1157  xfs_ialloc( Line 1162  xfs_ialloc(
         if ((prid != 0) && (ip->i_d.di_version == XFS_DINODE_VERSION_1))          if ((prid != 0) && (ip->i_d.di_version == XFS_DINODE_VERSION_1))
                 xfs_bump_ino_vers2(tp, ip);                  xfs_bump_ino_vers2(tp, ip);
   
         if (XFS_INHERIT_GID(pip, vp->v_vfsp)) {          if (pip && XFS_INHERIT_GID(pip, vp->v_vfsp)) {
                 ip->i_d.di_gid = pip->i_d.di_gid;                  ip->i_d.di_gid = pip->i_d.di_gid;
                 if ((pip->i_d.di_mode & S_ISGID) && (mode & S_IFMT) == S_IFDIR) {                  if ((pip->i_d.di_mode & S_ISGID) && (mode & S_IFMT) == S_IFDIR) {
                         ip->i_d.di_mode |= S_ISGID;                          ip->i_d.di_mode |= S_ISGID;
Line 1199  xfs_ialloc( Line 1204  xfs_ialloc(
                 flags |= XFS_ILOG_DEV;                  flags |= XFS_ILOG_DEV;
                 break;                  break;
         case S_IFREG:          case S_IFREG:
                 if (xfs_inode_is_filestream(pip)) {                  if (pip && xfs_inode_is_filestream(pip)) {
                         error = xfs_filestream_associate(pip, ip);                          error = xfs_filestream_associate(pip, ip);
                         if (error < 0)                          if (error < 0)
                                 return -error;                                  return -error;
Line 1208  xfs_ialloc( Line 1213  xfs_ialloc(
                 }                  }
                 /* fall through */                  /* fall through */
         case S_IFDIR:          case S_IFDIR:
                 if (pip->i_d.di_flags & XFS_DIFLAG_ANY) {                  if (pip && (pip->i_d.di_flags & XFS_DIFLAG_ANY)) {
                         uint    di_flags = 0;                          uint    di_flags = 0;
   
                         if ((mode & S_IFMT) == S_IFDIR) {                          if ((mode & S_IFMT) == S_IFDIR) {

Removed from v.1.465  
changed lines
  Added in v.1.466


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>