summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_vfs.c
Commit message (Collapse)AuthorAgeFilesLines
* Prevent a panic that happens on SMP machines when removing a disk withtrasz2009-01-111-1/+11
| | | | | | | | many writes queued up. Reviewed by: phk, scottl Approved by: rwatson (mentor) Sponsored by: FreeBSD Foundation
* Implement g_vfs_orphan(). Without it, the filesystem never closestrasz2008-12-161-10/+25
| | | | | | | | | | | the device, which means refcount on periph drivers never drops, which means cam_sim_free() never returns, which results in umass sleeping there ad infinitum. Submitted by: pjd Reviewed by: scottl, pjd Approved by: rwatson (mentor) Sponsored by: FreeBSD Foundation
* Remove the struct thread unuseful argument from bufobj interface.attilio2008-10-101-2/+2
| | | | | | | | | | | | | | | | | | | | | In particular following functions KPI results modified: - bufobj_invalbuf() - bufsync() and BO_SYNC() "virtual method" of the buffer objects set. Main consumers of bufobj functions are affected by this change too and, in particular, functions which changed their KPI are: - vinvalbuf() - g_vfs_close() Due to the KPI breakage, __FreeBSD_version will be bumped in a later commit. As a side note, please consider just temporary the 'curthread' argument passing to VOP_SYNC() (in bufsync()) as it will be axed out ASAP Reviewed by: kib Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com>
* Cylinder group bitmaps and blocks containing inode for a snapshotkib2007-01-231-0/+1
| | | | | | | | | | | | | | | | | | | | | file are after snaplock, while other ffs device buffers are before snaplock in global lock order. By itself, this could cause deadlock when bdwrite() tries to flush dirty buffers on snapshotted ffs. If, during the flush, COW activity for snapshot needs to allocate block and ffs_alloccg() selects the cylinder group that is being written by bdwrite(), then kernel would panic due to recursive buffer lock acquision. Avoid dealing with buffers in bdwrite() that are from other side of snaplock divisor in the lock order then the buffer being written. Add new BOP, bop_bdwrite(), to do dirty buffer flushing for same vnode in the bdwrite(). Default implementation, bufbdflush(), refactors the code from bdwrite(). For ffs device buffers, specialized implementation is used. Reviewed by: tegge, jeff, Russell Cattelan (cattelan xfs org, xfs changes) Tested by: Peter Holm X-MFC after: 3 weeks (if ever: it changes ABI)
* - Lock Giant if needed around the call to vnode_create_vobject(). This isjeff2006-03-021-0/+3
| | | | | | | only important if devfs is not mpsafe. Sponsored by: Isilon Systems, Inc. Found by: kris
* Try to unbreak the vnode locking around vop_reclaim() (based mostly onphk2005-02-191-0/+4
| | | | | | | | | patch from kan@). Pull bufobj_invalbuf() out of vinvalbuf() and make g_vfs call it on close. This is not yet a generally safe function, but for this very specific use it is safe. This solves the problem with buffers not being flushed by unmount or after failed mount attempts.
* Make various random things staticphk2005-02-101-1/+3
|
* - If mpsafevfs is off, acquire giant around all calls to bufdone().jeff2005-01-281-0/+4
| | | | Sponsored by: Isilon Systems, Inc.
* Introduce and use g_vfs_close().phk2005-01-251-0/+11
|
* Create a correctly sized vnode objects for disk devices.phk2005-01-241-0/+1
|
* - Don't acquire giant around calls to bufdone().jeff2005-01-241-2/+0
| | | | Sponsored By: Isilon Systems, Inc.
* Add BO_SYNC() and add a default which uses the secret vnode pointerphk2005-01-111-0/+1
| | | | and VOP_FSYNC() for now.
* Finish cut&paste adjustments.phk2004-11-041-1/+1
| | | | Spotted by: tegge
* Add GEOM class "VFS" for filesystems and other buffer cache usersphk2004-10-291-0/+152
of GEOM devices. There is nothing magic about this, it just gives a bufobj interface to GEOM.
OpenPOWER on IntegriCloud