Print this page
OS-5148 ftruncate at offset should emit proper events
Reviewed by: Bryan Cantrill <bryan@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
OS-3294 add support for inotify
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/nfs/nfs3_vnops.c
          +++ new/usr/src/uts/common/fs/nfs/nfs3_vnops.c
↓ open down ↓ 21 lines elided ↑ open up ↑
  22   22   * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24   24   */
  25   25  
  26   26  /*
  27   27   *      Copyright (c) 1983,1984,1985,1986,1987,1988,1989 AT&T.
  28   28   *      All rights reserved.
  29   29   */
  30   30  
  31   31  /*
  32      - * Copyright (c) 2013, Joyent, Inc. All rights reserved.
       32 + * Copyright (c) 2014, Joyent, Inc. All rights reserved.
  33   33   * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  34   34   */
  35   35  
  36   36  #include <sys/param.h>
  37   37  #include <sys/types.h>
  38   38  #include <sys/systm.h>
  39   39  #include <sys/cred.h>
  40   40  #include <sys/time.h>
  41   41  #include <sys/vnode.h>
  42   42  #include <sys/vfs.h>
↓ open down ↓ 3303 lines elided ↑ open up ↑
3346 3346                   * which geterrno maps to ENOTEMPTY.
3347 3347                   */
3348 3348                  if (error == ENOTEMPTY)
3349 3349                          error = EEXIST;
3350 3350          }
3351 3351  
3352 3352          if (error == 0) {
3353 3353                  if (nvp)
3354 3354                          vnevent_rename_dest(nvp, ndvp, nnm, ct);
3355 3355  
3356      -                if (odvp != ndvp)
3357      -                        vnevent_rename_dest_dir(ndvp, ct);
3358 3356                  ASSERT(ovp != NULL);
3359 3357                  vnevent_rename_src(ovp, odvp, onm, ct);
     3358 +                vnevent_rename_dest_dir(ndvp, ovp, nnm, ct);
3360 3359          }
3361 3360  
3362 3361          if (nvp) {
3363 3362                  VN_RELE(nvp);
3364 3363          }
3365 3364          VN_RELE(ovp);
3366 3365  
3367 3366          nfs_rw_exit(&odrp->r_rwlock);
3368 3367          nfs_rw_exit(&ndrp->r_rwlock);
3369 3368  
↓ open down ↓ 2146 lines elided ↑ open up ↑
5516 5515                           * previous size.
5517 5516                           */
5518 5517                          va.va_mask = AT_SIZE;
5519 5518                          error = nfs3getattr(vp, &va, cr);
5520 5519                          if (error || va.va_size == bfp->l_start)
5521 5520                                  return (error);
5522 5521                          va.va_mask = AT_SIZE;
5523 5522                          va.va_size = bfp->l_start;
5524 5523                          error = nfs3setattr(vp, &va, 0, cr);
5525 5524  
5526      -                        if (error == 0 && bfp->l_start == 0)
5527      -                                vnevent_truncate(vp, ct);
     5525 +                        if (error == 0) {
     5526 +                                if (bfp->l_start == 0) {
     5527 +                                        vnevent_truncate(vp, ct);
     5528 +                                } else {
     5529 +                                        vnevent_resize(vp, ct);
     5530 +                                }
     5531 +                        }
5528 5532                  } else
5529 5533                          error = EINVAL;
5530 5534          }
5531 5535  
5532 5536          return (error);
5533 5537  }
5534 5538  
5535 5539  /* ARGSUSED */
5536 5540  static int
5537 5541  nfs3_realvp(vnode_t *vp, vnode_t **vpp, caller_context_t *ct)
↓ open down ↓ 1213 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX