Diff for /xfs-linux/xfs_vnodeops.c between versions 1.704 and 1.705

version 1.704, 2007/07/18 15:54:19 version 1.705, 2007/08/06 15:41:08
Line 337  xfs_setattr( Line 337  xfs_setattr(
                         }                          }
                 }                  }
         } else {          } else {
                 if (DM_EVENT_ENABLED (vp->v_vfsp, ip, DM_EVENT_TRUNCATE) &&                  if (DM_EVENT_ENABLED(ip, DM_EVENT_TRUNCATE) &&
                     !(flags & ATTR_DMI)) {                      !(flags & ATTR_DMI)) {
                         int dmflags = AT_DELAY_FLAG(flags) | DM_SEM_FLAG_WR;                          int dmflags = AT_DELAY_FLAG(flags) | DM_SEM_FLAG_WR;
                         code = XFS_SEND_DATA(mp, DM_EVENT_TRUNCATE, vp,                          code = XFS_SEND_DATA(mp, DM_EVENT_TRUNCATE, vp,
Line 896  xfs_setattr( Line 896  xfs_setattr(
                 return code;                  return code;
         }          }
   
         if (DM_EVENT_ENABLED(vp->v_vfsp, ip, DM_EVENT_ATTRIBUTE) &&          if (DM_EVENT_ENABLED(ip, DM_EVENT_ATTRIBUTE) &&
             !(flags & ATTR_DMI)) {              !(flags & ATTR_DMI)) {
                 (void) XFS_SEND_NAMESP(mp, DM_EVENT_ATTRIBUTE, vp, DM_RIGHT_NULL,                  (void) XFS_SEND_NAMESP(mp, DM_EVENT_ATTRIBUTE, vp, DM_RIGHT_NULL,
                                         NULL, DM_RIGHT_NULL, NULL, NULL,                                          NULL, DM_RIGHT_NULL, NULL, NULL,
Line 1663  xfs_inactive( Line 1663  xfs_inactive(
   
         mp = ip->i_mount;          mp = ip->i_mount;
   
         if (ip->i_d.di_nlink == 0 &&          if (ip->i_d.di_nlink == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_DESTROY)) {
             DM_EVENT_ENABLED(vp->v_vfsp, ip, DM_EVENT_DESTROY)) {  
                 (void) XFS_SEND_DESTROY(mp, vp, DM_RIGHT_NULL);                  (void) XFS_SEND_DESTROY(mp, vp, DM_RIGHT_NULL);
         }          }
   
Line 1919  xfs_create( Line 1918  xfs_create(
         dm_di_mode = vap->va_mode;          dm_di_mode = vap->va_mode;
         namelen = VNAMELEN(dentry);          namelen = VNAMELEN(dentry);
   
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_CREATE)) {          if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
                 error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,                  error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
                                 dir_vp, DM_RIGHT_NULL, NULL,                                  dir_vp, DM_RIGHT_NULL, NULL,
                                 DM_RIGHT_NULL, name, NULL,                                  DM_RIGHT_NULL, name, NULL,
Line 2084  xfs_create( Line 2083  xfs_create(
         /* Fallthrough to std_return with error = 0  */          /* Fallthrough to std_return with error = 0  */
   
 std_return:  std_return:
         if ( (*vpp || (error != 0 && dm_event_sent != 0)) &&          if ((*vpp || (error != 0 && dm_event_sent != 0)) &&
                         DM_EVENT_ENABLED(dir_vp->v_vfsp, XFS_BHVTOI(dir_bdp),              DM_EVENT_ENABLED(XFS_BHVTOI(dir_bdp), DM_EVENT_POSTCREATE)) {
                                                         DM_EVENT_POSTCREATE)) {  
                 (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,                  (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
                         dir_vp, DM_RIGHT_NULL,                          dir_vp, DM_RIGHT_NULL,
                         *vpp ? vp:NULL,                          *vpp ? vp:NULL,
Line 2420  xfs_remove( Line 2418  xfs_remove(
                 IRELE(ip);                  IRELE(ip);
         }          }
   
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_REMOVE)) {          if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
                 error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE, dir_vp,                  error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE, dir_vp,
                                         DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,                                          DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
                                         name, NULL, dm_di_mode, 0, 0);                                          name, NULL, dm_di_mode, 0, 0);
Line 2596  xfs_remove( Line 2594  xfs_remove(
   
 /*      Fall through to std_return with error = 0 */  /*      Fall through to std_return with error = 0 */
  std_return:   std_return:
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp,          if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
                                                 DM_EVENT_POSTREMOVE)) {  
                 (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,                  (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
                                 dir_vp, DM_RIGHT_NULL,                                  dir_vp, DM_RIGHT_NULL,
                                 NULL, DM_RIGHT_NULL,                                  NULL, DM_RIGHT_NULL,
Line 2674  xfs_link( Line 2671  xfs_link(
         if (XFS_FORCED_SHUTDOWN(mp))          if (XFS_FORCED_SHUTDOWN(mp))
                 return XFS_ERROR(EIO);                  return XFS_ERROR(EIO);
   
         if (DM_EVENT_ENABLED(src_vp->v_vfsp, tdp, DM_EVENT_LINK)) {          if (DM_EVENT_ENABLED(tdp, DM_EVENT_LINK)) {
                 error = XFS_SEND_NAMESP(mp, DM_EVENT_LINK,                  error = XFS_SEND_NAMESP(mp, DM_EVENT_LINK,
                                         target_dir_vp, DM_RIGHT_NULL,                                          target_dir_vp, DM_RIGHT_NULL,
                                         src_vp, DM_RIGHT_NULL,                                          src_vp, DM_RIGHT_NULL,
Line 2785  xfs_link( Line 2782  xfs_link(
   
         /* Fall through to std_return with error = 0. */          /* Fall through to std_return with error = 0. */
 std_return:  std_return:
         if (DM_EVENT_ENABLED(src_vp->v_vfsp, sip,          if (DM_EVENT_ENABLED(sip, DM_EVENT_POSTLINK)) {
                                                 DM_EVENT_POSTLINK)) {  
                 (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTLINK,                  (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTLINK,
                                 target_dir_vp, DM_RIGHT_NULL,                                  target_dir_vp, DM_RIGHT_NULL,
                                 src_vp, DM_RIGHT_NULL,                                  src_vp, DM_RIGHT_NULL,
Line 2850  xfs_mkdir( Line 2846  xfs_mkdir(
         dp_joined_to_trans = B_FALSE;          dp_joined_to_trans = B_FALSE;
         dm_di_mode = vap->va_mode;          dm_di_mode = vap->va_mode;
   
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_CREATE)) {          if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
                 error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,                  error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
                                         dir_vp, DM_RIGHT_NULL, NULL,                                          dir_vp, DM_RIGHT_NULL, NULL,
                                         DM_RIGHT_NULL, dir_name, NULL,                                          DM_RIGHT_NULL, dir_name, NULL,
Line 3007  xfs_mkdir( Line 3003  xfs_mkdir(
          * xfs_trans_commit. */           * xfs_trans_commit. */
   
 std_return:  std_return:
         if ( (created || (error != 0 && dm_event_sent != 0)) &&          if ((created || (error != 0 && dm_event_sent != 0)) &&
                         DM_EVENT_ENABLED(dir_vp->v_vfsp, XFS_BHVTOI(dir_bdp),              DM_EVENT_ENABLED(XFS_BHVTOI(dir_bdp), DM_EVENT_POSTCREATE)) {
                                                 DM_EVENT_POSTCREATE)) {  
                 (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,                  (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
                                         dir_vp, DM_RIGHT_NULL,                                          dir_vp, DM_RIGHT_NULL,
                                         created ? XFS_ITOV(cdp):NULL,                                          created ? XFS_ITOV(cdp):NULL,
Line 3078  xfs_rmdir( Line 3073  xfs_rmdir(
                 IRELE(cdp);                  IRELE(cdp);
         }          }
   
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_REMOVE)) {          if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
                 error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE,                  error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE,
                                         dir_vp, DM_RIGHT_NULL,                                          dir_vp, DM_RIGHT_NULL,
                                         NULL, DM_RIGHT_NULL,                                          NULL, DM_RIGHT_NULL,
Line 3267  xfs_rmdir( Line 3262  xfs_rmdir(
         /* Fall through to std_return with error = 0 or the errno          /* Fall through to std_return with error = 0 or the errno
          * from xfs_trans_commit. */           * from xfs_trans_commit. */
  std_return:   std_return:
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_POSTREMOVE)) {          if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
                 (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,                  (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
                                         dir_vp, DM_RIGHT_NULL,                                          dir_vp, DM_RIGHT_NULL,
                                         NULL, DM_RIGHT_NULL,                                          NULL, DM_RIGHT_NULL,
Line 3402  xfs_symlink( Line 3397  xfs_symlink(
                 }                  }
         }          }
   
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_SYMLINK)) {          if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) {
                 error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dir_vp,                  error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dir_vp,
                                         DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,                                          DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
                                         link_name, target_path, 0, 0, 0);                                          link_name, target_path, 0, 0, 0);
Line 3602  xfs_symlink( Line 3597  xfs_symlink(
         /* Fall through to std_return with error = 0 or errno from          /* Fall through to std_return with error = 0 or errno from
          * xfs_trans_commit     */           * xfs_trans_commit     */
 std_return:  std_return:
         if (DM_EVENT_ENABLED(dir_vp->v_vfsp, XFS_BHVTOI(dir_bdp),          if (DM_EVENT_ENABLED(XFS_BHVTOI(dir_bdp), DM_EVENT_POSTSYMLINK)) {
                              DM_EVENT_POSTSYMLINK)) {  
                 (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTSYMLINK,                  (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTSYMLINK,
                                         dir_vp, DM_RIGHT_NULL,                                          dir_vp, DM_RIGHT_NULL,
                                         error ? NULL : XFS_ITOV(ip),                                          error ? NULL : XFS_ITOV(ip),
Line 4105  xfs_alloc_file_space( Line 4099  xfs_alloc_file_space(
         /*      Generate a DMAPI event if needed.       */          /*      Generate a DMAPI event if needed.       */
         if (alloc_type != 0 && offset < ip->i_size &&          if (alloc_type != 0 && offset < ip->i_size &&
                         (attr_flags&ATTR_DMI) == 0  &&                          (attr_flags&ATTR_DMI) == 0  &&
                         DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) {                          DM_EVENT_ENABLED(ip, DM_EVENT_WRITE)) {
                 xfs_off_t           end_dmi_offset;                  xfs_off_t           end_dmi_offset;
   
                 end_dmi_offset = offset+len;                  end_dmi_offset = offset+len;
Line 4219  retry: Line 4213  retry:
                 allocatesize_fsb -= allocated_fsb;                  allocatesize_fsb -= allocated_fsb;
         }          }
 dmapi_enospc_check:  dmapi_enospc_check:
         if (error == ENOSPC && (attr_flags&ATTR_DMI) == 0 &&          if (error == ENOSPC && (attr_flags & ATTR_DMI) == 0 &&
             DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_NOSPACE)) {              DM_EVENT_ENABLED(ip, DM_EVENT_NOSPACE)) {
   
                 error = XFS_SEND_NAMESP(mp, DM_EVENT_NOSPACE,                  error = XFS_SEND_NAMESP(mp, DM_EVENT_NOSPACE,
                                 XFS_ITOV(ip), DM_RIGHT_NULL,                                  XFS_ITOV(ip), DM_RIGHT_NULL,
                                 XFS_ITOV(ip), DM_RIGHT_NULL,                                  XFS_ITOV(ip), DM_RIGHT_NULL,
Line 4365  xfs_free_file_space( Line 4358  xfs_free_file_space(
         end_dmi_offset = offset + len;          end_dmi_offset = offset + len;
         endoffset_fsb = XFS_B_TO_FSBT(mp, end_dmi_offset);          endoffset_fsb = XFS_B_TO_FSBT(mp, end_dmi_offset);
   
         if (offset < ip->i_size &&          if (offset < ip->i_size && (attr_flags & ATTR_DMI) == 0 &&
             (attr_flags & ATTR_DMI) == 0 &&              DM_EVENT_ENABLED(ip, DM_EVENT_WRITE)) {
             DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) {  
                 if (end_dmi_offset > ip->i_size)                  if (end_dmi_offset > ip->i_size)
                         end_dmi_offset = ip->i_size;                          end_dmi_offset = ip->i_size;
                 error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, vp,                  error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, vp,

Removed from v.1.704  
changed lines
  Added in v.1.705


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