Lines Matching refs:bp
77 printf("bread: bp %p blkno %lld offset %lld bcount %ld\n",
98 brelse(struct buf *bp)
101 assert (bp != NULL);
102 assert (bp->b_data != NULL);
104 if (bp->b_lblkno < 0) {
118 bp->b_bcount = 0;
122 TAILQ_REMOVE(&buftail, bp, b_tailq);
123 free(bp->b_data);
124 free(bp);
128 bwrite(struct buf *bp)
133 assert (bp != NULL);
134 offset = bp->b_blkno * sectorsize; /* XXX */
136 printf("bwrite: bp %p blkno %lld offset %lld bcount %ld\n",
137 bp, (long long)bp->b_blkno, (long long) offset,
138 bp->b_bcount);
139 if (lseek(bp->b_fd, offset, SEEK_SET) == -1)
141 rv = write(bp->b_fd, bp->b_data, bp->b_bcount);
144 bp->b_bcount, (long long)offset, (long long)rv);
145 if (rv == bp->b_bcount)
156 struct buf *bp;
168 TAILQ_FOREACH(bp, &buftail, b_tailq) {
170 (long long)bp->b_lblkno, (long long)bp->b_blkno,
171 bp->b_bcount, bp->b_bufsize);
180 struct buf *bp;
188 bp = NULL;
195 TAILQ_FOREACH(bp, &buftail, b_tailq) {
196 if (bp->b_lblkno != blkno)
201 if (bp == NULL) {
202 if ((bp = calloc(1, sizeof(struct buf))) == NULL)
205 bp->b_bufsize = 0;
206 bp->b_blkno = bp->b_lblkno = blkno;
207 bp->b_fd = fd;
208 bp->b_fs = fs;
209 bp->b_data = NULL;
210 TAILQ_INSERT_HEAD(&buftail, bp, b_tailq);
212 bp->b_bcount = size;
213 if (bp->b_data == NULL || bp->b_bcount > bp->b_bufsize) {
214 n = realloc(bp->b_data, size);
216 err(1, "getblk: realloc b_data %ld", bp->b_bcount);
217 bp->b_data = n;
218 bp->b_bufsize = size;
221 return (bp);