Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 2009 18:54:56 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/fs/cd9660 cd9660_lookup.c cd9660_node.c cd9660_node.h cd9660_vfsops.c
Message-ID:  <200901281855.n0SIt80d091597@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2009-01-28 18:54:56 UTC

  FreeBSD src repository

  Modified files:
    sys/fs/cd9660        cd9660_lookup.c cd9660_node.c 
                         cd9660_node.h cd9660_vfsops.c 
  Log:
  SVN rev 187838 on 2009-01-28 18:54:56Z by jhb
  
  Mark cd9660 MPSAFE and add support for using shared vnode locks during
  pathname lookups.
  - Remove 'i_offset' and 'i_ino' from the ISO node structure and replace
    them with local variables in the lookup routine instead.
  - Cache a copy of 'i_diroff' for use during a lookup in a local variable.
  - Save a copy of the found directory entry in a malloc'd buffer after a
    successfull lookup before getting the vnode.  This allows us to release
    the buffer holding the directory block before calling vget() which
    otherwise resulted in a LOR between "bufwait" and the vnode lock.
  - Use an inlined version of vn_vget_ino() to handle races with ..
    lookups.  I had to inline the code here since cd9660 uses an internal
    vget routine to save a disk I/O that would otherwise re-read the
    directory block.
  - Honor the requested locking flags during lookups to allow for shared
    locking.
  - Honor the requested locking flags passed to VFS_ROOT() and VFS_VGET()
    similar to UFS.
  - Don't make every ISO 9660 vnode hold a reference on the vnode of the
    underlying device vnode of the mountpoint.  The mountpoint already
    holds a suitable reference.
  
  Revision  Changes    Path
  1.46      +95 -43    src/sys/fs/cd9660/cd9660_lookup.c
  1.61      +0 -3      src/sys/fs/cd9660/cd9660_node.c
  1.35      +0 -2      src/sys/fs/cd9660/cd9660_node.h
  1.160     +19 -2     src/sys/fs/cd9660/cd9660_vfsops.c



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