1N/A/*********************************************************************** 1N/A* This software is part of the ast package * 1N/A* Copyright (c) 1985-2011 AT&T Intellectual Property * 1N/A* and is licensed under the * 1N/A* Common Public License, Version 1.0 * 1N/A* by AT&T Intellectual Property * 1N/A* A copy of the License is available at * 1N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 1N/A* Information and Software Systems Research * 1N/A* Glenn Fowler <gsf@research.att.com> * 1N/A* David Korn <dgk@research.att.com> * 1N/A* Phong Vo <kpv@research.att.com> * 1N/A***********************************************************************/ 1N/A/* Write with discipline. 1N/A** Written by Kiem-Phong Vo. 1N/A/* hole preserving writes */ 1N/A {
/* see if a hole of 0's starts here */ 1N/A {
/* check byte at a time until int-aligned */ 1N/A /* check using int to speed up */ 1N/A /* check the remaining bytes */ 1N/A /* skip a dirty page */ 1N/A /* write out current dirty pages */ 1N/A /* seek to a rounded boundary within the hole */ 1N/A {
/* next page must be dirty */ 1N/A return w > 0 ? w : -
1;
1N/A {
/* stream locked by sfsetfd() */ 1N/A /* clear current error states */ 1N/A {
/* warn that a write is about to happen */ 1N/A {
/* make sure we are at the right place to write */ 1N/A /* else fall thru */