ffs_vnops.c (112181) | ffs_vnops.c (112694) |
---|---|
1/* 2 * Copyright (c) 2002 Networks Associates Technology, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Marshall 6 * Kirk McKusick and Network Associates Laboratories, the Security 7 * Research Division of Network Associates, Inc. under DARPA/SPAWAR 8 * contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS --- 26 unchanged lines hidden (view full) --- 35 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 36 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 37 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 38 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 39 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 40 * SUCH DAMAGE. 41 * 42 * @(#)ffs_vnops.c 8.15 (Berkeley) 5/14/95 | 1/* 2 * Copyright (c) 2002 Networks Associates Technology, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Marshall 6 * Kirk McKusick and Network Associates Laboratories, the Security 7 * Research Division of Network Associates, Inc. under DARPA/SPAWAR 8 * contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS --- 26 unchanged lines hidden (view full) --- 35 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 36 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 37 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 38 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 39 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 40 * SUCH DAMAGE. 41 * 42 * @(#)ffs_vnops.c 8.15 (Berkeley) 5/14/95 |
43 * $FreeBSD: head/sys/ufs/ffs/ffs_vnops.c 112181 2003-03-13 07:19:23Z jeff $ | 43 * $FreeBSD: head/sys/ufs/ffs/ffs_vnops.c 112694 2003-03-26 23:40:42Z tegge $ |
44 */ 45 46#include <sys/param.h> 47#include <sys/bio.h> 48#include <sys/systm.h> 49#include <sys/buf.h> 50#include <sys/conf.h> 51#include <sys/extattr.h> --- 19 unchanged lines hidden (view full) --- 71#include <ufs/ufs/extattr.h> 72#include <ufs/ufs/quota.h> 73#include <ufs/ufs/inode.h> 74#include <ufs/ufs/ufs_extern.h> 75#include <ufs/ufs/ufsmount.h> 76 77#include <ufs/ffs/fs.h> 78#include <ufs/ffs/ffs_extern.h> | 44 */ 45 46#include <sys/param.h> 47#include <sys/bio.h> 48#include <sys/systm.h> 49#include <sys/buf.h> 50#include <sys/conf.h> 51#include <sys/extattr.h> --- 19 unchanged lines hidden (view full) --- 71#include <ufs/ufs/extattr.h> 72#include <ufs/ufs/quota.h> 73#include <ufs/ufs/inode.h> 74#include <ufs/ufs/ufs_extern.h> 75#include <ufs/ufs/ufsmount.h> 76 77#include <ufs/ffs/fs.h> 78#include <ufs/ffs/ffs_extern.h> |
79#include "opt_directio.h" |
|
79 | 80 |
81#ifdef DIRECTIO 82extern int ffs_rawread(struct vnode *vp, struct uio *uio, int *workdone); 83#endif |
|
80static int ffs_fsync(struct vop_fsync_args *); 81static int ffs_getpages(struct vop_getpages_args *); 82static int ffs_read(struct vop_read_args *); 83static int ffs_write(struct vop_write_args *); 84static int ffs_extread(struct vnode *vp, struct uio *uio, int ioflag); 85static int ffs_extwrite(struct vnode *vp, struct uio *uio, int ioflag, 86 struct ucred *cred); 87static int ffsext_strategy(struct vop_strategy_args *); --- 256 unchanged lines hidden (view full) --- 344 uio = ap->a_uio; 345 ioflag = ap->a_ioflag; 346 if (ap->a_ioflag & IO_EXT) 347#ifdef notyet 348 return (ffs_extread(vp, uio, ioflag)); 349#else 350 panic("ffs_read+IO_EXT"); 351#endif | 84static int ffs_fsync(struct vop_fsync_args *); 85static int ffs_getpages(struct vop_getpages_args *); 86static int ffs_read(struct vop_read_args *); 87static int ffs_write(struct vop_write_args *); 88static int ffs_extread(struct vnode *vp, struct uio *uio, int ioflag); 89static int ffs_extwrite(struct vnode *vp, struct uio *uio, int ioflag, 90 struct ucred *cred); 91static int ffsext_strategy(struct vop_strategy_args *); --- 256 unchanged lines hidden (view full) --- 348 uio = ap->a_uio; 349 ioflag = ap->a_ioflag; 350 if (ap->a_ioflag & IO_EXT) 351#ifdef notyet 352 return (ffs_extread(vp, uio, ioflag)); 353#else 354 panic("ffs_read+IO_EXT"); 355#endif |
356#ifdef DIRECTIO 357 if ((ioflag & IO_DIRECT) != 0) { 358 int workdone; |
|
352 | 359 |
360 error = ffs_rawread(vp, uio, &workdone); 361 if (error != 0 || workdone != 0) 362 return error; 363 } 364#endif 365 |
|
353 GIANT_REQUIRED; 354 355 seqcount = ap->a_ioflag >> 16; 356 ip = VTOI(vp); 357 mode = ip->i_mode; 358 359#ifdef DIAGNOSTIC 360 if (uio->uio_rw != UIO_READ) --- 1301 unchanged lines hidden --- | 366 GIANT_REQUIRED; 367 368 seqcount = ap->a_ioflag >> 16; 369 ip = VTOI(vp); 370 mode = ip->i_mode; 371 372#ifdef DIAGNOSTIC 373 if (uio->uio_rw != UIO_READ) --- 1301 unchanged lines hidden --- |