Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jan 2009 11:27:45 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/kern vfs_subr.c src/sys/ufs/ffs ffs_inode.c
Message-ID:  <200901201129.n0KBT349058316@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
kib         2009-01-20 11:27:45 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             vfs_subr.c 
    sys/ufs/ffs          ffs_inode.c 
  Log:
  SVN rev 187467 on 2009-01-20 11:27:45Z by kib
  
  FFS puts the extended attributes blocks at the negative blocks for the
  vnode, from -1 down. When vinvalbuf(vp, V_ALT) is done for the vnode, it
  incorrectly does vm_object_page_remove(0, 0), removing all pages from
  the underlying vm object, not only the pages that back the extended
  attributes data.
  
  Change vinvalbuf() to not remove any pages from the object when
  V_NORMAL or V_ALT are specified. Instead, the only in-tree caller
  in ffs_inode.c:ffs_truncate() that specifies V_ALT explicitely
  removes the corresponding page range. The V_NORMAL caller
  does vnode_pager_setsize(vp, 0) immediately after the call to
  vinvalbuf(V_NORMAL) already.
  
  Reported by:    csjp
  Reviewed by:    ups
  MFC after:      3 weeks
  
  Revision  Changes    Path
  1.751     +1 -1      src/sys/kern/vfs_subr.c
  1.114     +9 -0      src/sys/ufs/ffs/ffs_inode.c



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