Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 2010 08:18:49 +0000 (UTC)
From:      Alexander Leidinger <netchild@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/cddl/compat/opensolaris/kern opensolaris_kobj.c opensolaris_taskq.c src/sys/cddl/compat/opensolaris/sys taskq.h taskq_impl.h vnode.h src/sys/cddl/contrib/opensolaris/common/nvpair nvpair.c src/sys/cddl/contrib/opensolaris/uts/common/fs gfs.c vnode.c src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs ...
Message-ID:  <201001060819.o068JWEt025945@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
netchild    2010-01-06 08:18:49 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_7)
    sys/cddl/compat/opensolaris/kern opensolaris_kobj.c 
    sys/cddl/compat/opensolaris/sys vnode.h 
    sys/cddl/contrib/opensolaris/common/nvpair nvpair.c 
    sys/cddl/contrib/opensolaris/uts/common/fs gfs.c vnode.c 
    sys/cddl/contrib/opensolaris/uts/common/fs/zfs dmu.c 
                                                   dsl_pool.c 
                                                   zfs_ioctl.c 
                                                   zfs_vfsops.c 
                                                   zfs_vnops.c 
    sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys dsl_pool.h 
                                                       zfs_context.h 
                                                       zfs_znode.h 
    sys/cddl/contrib/opensolaris/uts/common/sys vnode.h 
    sys/cddl/dev/cyclic  cyclic.c 
    sys/cddl/dev/dtrace/i386 dtrace_subr.c 
    sys/kern             subr_taskqueue.c vfs_vnops.c 
    sys/modules/zfs      Makefile 
    sys/sys              mount.h taskqueue.h 
  Added files:           (Branch: RELENG_7)
    sys/cddl/compat/opensolaris/kern opensolaris_taskq.c 
    sys/cddl/contrib/opensolaris/uts/common/sys taskq.h 
  Removed files:         (Branch: RELENG_7)
    sys/cddl/compat/opensolaris/sys taskq.h taskq_impl.h 
    sys/cddl/contrib/opensolaris/uts/common/os taskq.c 
  Log:
  SVN rev 201633 on 2010-01-06 08:18:49Z by netchild
  
  MFC several ZFS related commits:
   - taskq changes
   - fixes for race conditions
   - locking fixes
   - bug fixes
   - ...
  
  r185310:
  ---snip---
      Remove unused variable.
  
      Found with: Coverity Prevent(tm)
      CID:        3669,3671
  ---snip---
  
  r185319:
  ---snip---
      Fix locking (file descriptor table and Giant around VFS).
  
      Most submitted by:  kib
      Reviewed by:        kib
  ---snip---
  
  r192689:
  ---snip---
      Fix comment.
  ---snip---
  
  r193110:
  ---snip---
          work around snapshot shutdown race reported by Henri Hennebert
  ---snip---
  
  r193440:
  ---snip---
      Support shared vnode locks for write operations when the offset is
      provided on filesystems that support it.  This really improves mysql
      + innodb performance on ZFS.
  
      Reviewed by:        jhb, kmacy, jeffr
  ---snip---
  ATTENTION: this commit to releng7 does not allow shared vnode locks
  (there are some VFS changes needed before it can be enabled), it only
  provides the infrastructure and serves mostly as a diff reduction in
  the ZFS code.
  A comment has been added to the locking part to explain why no shared
  locks are used.
  
  r195627:
  ---snip---
      In nvpair_native_embedded_array(), meaningless pointers are zeroed.
      The programmer was aware that alignment was not guaranteed in the
      packed structure and used bzero() to NULL out the pointers.
      However, on ia64, the compiler is quite agressive in finding ILP
      and calls to bzero() are often replaced by simple assignments (i.e.
      stores). Especially when the width or size in question corresponds
      with a store instruction (i.e. st1, st2, st4 or st8).
  
      The problem here is not a compiler bug. The address of the memory
      to zero-out was given by '&packed->nvl_priv' and given the type of
      the 'packed' pointer the compiler could assume proper alignment for
      the replacement of bzero() with an 8-byte wide store to be valid.
      The problem is with the programmer. The programmer knew that the
      address did not have the alignment guarantees needed for a regular
      assignment, but failed to inform the compiler of that fact. In
      fact, the programmer told the compiler the opposite: alignment is
      guaranteed.
  
      The fix is to avoid using a pointer of type "nvlist_t *" and
      instead use a "char *" pointer as the basis for calculating the
      address. This tells the compiler that only 1-byte alignment can
      be assumed and the compiler will either keep the bzero() call
      or instead replace it with a sequence of byte-wise stores. Both
      are valid.
  ---snip---
  
  r195822:
  ---snip---
      Fix extattr_list_file(2) on ZFS in case the attribute directory
      doesn't exist and user doesn't have write access to the file.
      Without this fix, it returns bogus value instead of 0.  For some
      reason this didn't manifest on my kernel compiled with -O0.
  
      PR:                 kern/136601
      Submitted by:       Jaakko Heinonen <jh at saunalahti dot fi>
  ---snip---
  
  r195909
  ---snip---
      We don't support ephemeral IDs in FreeBSD and without this fix ZFS can
      panic when in zfs_fuid_create_cred() when userid is negative. It is
      converted to unsigned value which makes IS_EPHEMERAL() macro to
      incorrectly report that this is ephemeral ID. The most reasonable
      solution for now is to always report that the given ID is not ephemeral.
  
      PR:                 kern/132337
      Submitted by:       Matthew West <freebsd@r.zeeb.org>
      Tested by:          Thomas Backman <serenity@exscape.org>, Michael Reifenberger <mike@reifenberger.com>
  ---snip---
  
  r196291:
  ---snip---
      - Fix a race where /dev/zfs control device is created before ZFS is fully
        initialized. Also destroy /dev/zfs before doing other deinitializations.
      - Initialization through taskq is no longer needed and there is a race
        where one of the zpool/zfs command loads zfs.ko and tries to do some work
        immediately, but /dev/zfs is not there yet.
  
      Reported by:        pav
  ---snip---
  
  r196269:
  ---snip---
      Fix misalignment in nvpair_native_embedded() caused by the compiler
      replacing the bzero(). See also revision 195627, which fixed the
      misalignment in nvpair_native_embedded_array().
  ---snip---
  
  r196295:
  ---snip---
      Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
      replace it with wrappers around our taskqueue(9).
      To make it possible implement taskqueue_member() function which returns 1
      if the given thread was created by the given taskqueue.
  ---snip---
  The taskqueue_member() function is different due to kproc/kthread changes
  in releng8 and head, the function was...
  Revieved by:    jhb
  
  r196297:
  ---snip---
      Fix panic in zfs recv code. The last vnode (mountpoint's vnode) can have
      0 usecount.
  
      Reported by:        Thomas Backman <serenity@exscape.org>
  ---snip---
  
  r196299:
  ---snip---
      - We need to recycle vnode instead of freeing znode.
  
      Submitted by:       avg
  
      - Add missing vnode interlock unlock.
      - Remove redundant znode locking.
  ---snip---
  
  r196301:
  ---snip---
      If z_buf is NULL, we should free znode immediately.
  
      Noticed by: avg
  ---snip---
  
  r196307:
  ---snip---
      Manage asynchronous vnode release just like Solaris.
  
      Discussed with:     kmacy
  ---snip---
  
  Revision   Changes    Path
  1.7.2.2    +25 -11    src/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c
  1.1.4.2    +135 -0    src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c (new)
  1.2.2.3    +0 -86     src/sys/cddl/compat/opensolaris/sys/taskq.h (dead)
  1.2.2.3    +0 -137    src/sys/cddl/compat/opensolaris/sys/taskq_impl.h (dead)
  1.6.2.3    +0 -1      src/sys/cddl/compat/opensolaris/sys/vnode.h
  1.3.2.4    +9 -5      src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c
  1.5.2.4    +7 -2      src/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c
  1.2.2.2    +14 -121   src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c
  1.2.2.3    +0 -3      src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
  1.3.2.3    +10 -0     src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
  1.2.2.3    +3 -0      src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
  1.4.2.3    +1 -0      src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
  1.3.2.4    +4 -0      src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
  1.7.2.4    +21 -25    src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  1.14.2.3   +2 -1      src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  1.31.2.6   +20 -18    src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  1.4.2.4    +0 -1041   src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c (dead)
  1.1.4.2    +90 -0     src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h (new)
  1.3.2.3    +18 -4     src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h
  1.1.2.2    +1 -2      src/sys/cddl/dev/cyclic/cyclic.c
  1.1.2.3    +1 -2      src/sys/cddl/dev/dtrace/i386/dtrace_subr.c
  1.39.2.3   +29 -0     src/sys/kern/subr_taskqueue.c
  1.252.2.9  +32 -8     src/sys/kern/vfs_vnops.c
  1.6.2.5    +1 -1      src/sys/modules/zfs/Makefile
  1.228.2.9  +1 -0      src/sys/sys/mount.h
  1.16.2.3   +2 -0      src/sys/sys/taskqueue.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001060819.o068JWEt025945>