VOP_RDWR.9 (78278) | VOP_RDWR.9 (79727) |
---|---|
1.\" -*- nroff -*- 2.\" 3.\" Copyright (c) 1996 Doug Rabson 4.\" 5.\" All rights reserved. 6.\" 7.\" This program is free software. 8.\" --- 12 unchanged lines hidden (view full) --- 21.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, 22.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28.\" | 1.\" -*- nroff -*- 2.\" 3.\" Copyright (c) 1996 Doug Rabson 4.\" 5.\" All rights reserved. 6.\" 7.\" This program is free software. 8.\" --- 12 unchanged lines hidden (view full) --- 21.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, 22.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28.\" |
29.\" $FreeBSD: head/share/man/man9/VOP_RDWR.9 78278 2001-06-15 16:12:41Z rwatson $ | 29.\" $FreeBSD: head/share/man/man9/VOP_RDWR.9 79727 2001-07-14 19:41:16Z schweikh $ |
30.\" 31.Dd July 24, 1996 32.Os 33.Dt VOP_RDWR 9 34.Sh NAME 35.Nm VOP_READ , 36.Nm VOP_WRITE 37.Nd read or write a file --- 67 unchanged lines hidden (view full) --- 105 lbn = uio->uio_offset / size; 106 blkoffset = uio->uio_offset - lbn * size; 107 108 xfersize = size - blkoffset; 109 if (uio->uio_resid < xfersize) 110 xfersize = uio->uio_resid; 111 if (bytesinfile < xfersize) 112 xfersize = bytesinfile; | 30.\" 31.Dd July 24, 1996 32.Os 33.Dt VOP_RDWR 9 34.Sh NAME 35.Nm VOP_READ , 36.Nm VOP_WRITE 37.Nd read or write a file --- 67 unchanged lines hidden (view full) --- 105 lbn = uio->uio_offset / size; 106 blkoffset = uio->uio_offset - lbn * size; 107 108 xfersize = size - blkoffset; 109 if (uio->uio_resid < xfersize) 110 xfersize = uio->uio_resid; 111 if (bytesinfile < xfersize) 112 xfersize = bytesinfile; |
113 | 113 |
114 error = bread(vp, lbn, size, NOCRED, &bp); 115 if (error) { 116 brelse(bp); 117 bp = NULL; 118 break; 119 } 120 121 /* --- 4 unchanged lines hidden (view full) --- 126 * or uninitialized data. 127 */ 128 size -= bp->b_resid; 129 if (size < xfersize) { 130 if (size == 0) 131 break; 132 xfersize = size; 133 } | 114 error = bread(vp, lbn, size, NOCRED, &bp); 115 if (error) { 116 brelse(bp); 117 bp = NULL; 118 break; 119 } 120 121 /* --- 4 unchanged lines hidden (view full) --- 126 * or uninitialized data. 127 */ 128 size -= bp->b_resid; 129 if (size < xfersize) { 130 if (size == 0) 131 break; 132 xfersize = size; 133 } |
134 | 134 |
135 error = uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio); 136 if (error) 137 break; 138 139 bqrelse(bp); 140 } 141 if (bp != NULL) 142 bqrelse(bp); --- 22 unchanged lines hidden (view full) --- 165 166 for (error = 0; uio->uio_resid > 0;) { 167 lbn = uio->uio_offset / size; 168 blkoffset = uio->uio_offset - lbn * size; 169 170 xfersize = size - blkoffset; 171 if (uio->uio_resid < xfersize) 172 xfersize = uio->uio_resid; | 135 error = uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio); 136 if (error) 137 break; 138 139 bqrelse(bp); 140 } 141 if (bp != NULL) 142 bqrelse(bp); --- 22 unchanged lines hidden (view full) --- 165 166 for (error = 0; uio->uio_resid > 0;) { 167 lbn = uio->uio_offset / size; 168 blkoffset = uio->uio_offset - lbn * size; 169 170 xfersize = size - blkoffset; 171 if (uio->uio_resid < xfersize) 172 xfersize = uio->uio_resid; |
173 | 173 |
174 if (uio->uio_offset + xfersize > size of file) 175 vnode_pager_setsize(vp, uio->uio_offset + xfersize); 176 177 if (size > xfersize) 178 flags |= B_CLRBUF; 179 else 180 flags &= ~B_CLRBUF; 181 --- 56 unchanged lines hidden --- | 174 if (uio->uio_offset + xfersize > size of file) 175 vnode_pager_setsize(vp, uio->uio_offset + xfersize); 176 177 if (size > xfersize) 178 flags |= B_CLRBUF; 179 else 180 flags &= ~B_CLRBUF; 181 --- 56 unchanged lines hidden --- |