Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Oct 2003 13:41:07 -0700 (PDT)
From:      David Malone <dwmalone@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/streams streams.c src/sys/kern kern_descrip.c kern_event.c sys_pipe.c uipc_syscalls.c vfs_syscalls.c src/sys/opencrypto cryptodev.c
Message-ID:  <200310192041.h9JKf712075632@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
dwmalone    2003/10/19 13:41:07 PDT

  FreeBSD src repository

  Modified files:
    sys/dev/streams      streams.c 
    sys/kern             kern_descrip.c kern_event.c sys_pipe.c 
                         uipc_syscalls.c vfs_syscalls.c 
    sys/opencrypto       cryptodev.c 
  Log:
  falloc allocates a file structure and adds it to the file descriptor
  table, acquiring the necessary locks as it works. It usually returns
  two references to the new descriptor: one in the descriptor table
  and one via a pointer argument.
  
  As falloc releases the FILEDESC lock before returning, there is a
  potential for a process to close the reference in the file descriptor
  table before falloc's caller gets to use the file. I don't think this
  can happen in practice at the moment, because Giant indirectly protects
  closes.
  
  To stop the file being completly closed in this situation, this change
  makes falloc set the refcount to two when both references are returned.
  This makes life easier for several of falloc's callers, because the
  first thing they previously did was grab an extra reference on the
  file.
  
  Reviewed by:    iedowse
  Idea run past:  jhb
  
  Revision  Changes    Path
  1.43      +12 -3     src/sys/dev/streams/streams.c
  1.215     +22 -2     src/sys/kern/kern_descrip.c
  1.61      +2 -0      src/sys/kern/kern_event.c
  1.153     +3 -1      src/sys/kern/sys_pipe.c
  1.157     +3 -4      src/sys/kern/uipc_syscalls.c
  1.332     +2 -10     src/sys/kern/vfs_syscalls.c
  1.16      +1 -1      src/sys/opencrypto/cryptodev.c



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