]> git.neil.brown.name Git - lafs-utils.git/blob - lib/lafs_read_virtual.c
Remove lots of white-space errors
[lafs-utils.git] / lib / lafs_read_virtual.c
1 /*
2  * read a block given a virtual address
3  */
4 #define _GNU_SOURCE
5 #define _FILE_OFFSET_BITS 64
6 #include <unistd.h>
7 #include <lafs/lafs.h>
8
9
10 int lafs_read_virtual(struct lafs *fs, char *buf, loff_t addr)
11 {
12         struct lafs_device *d = lafs_dev_find(fs, addr);
13         int n;
14
15         if (!d)
16                 return -1;
17         lseek64(d->fd,
18                 (addr - d->start) * fs->blocksize + d->segment_offset,
19                 SEEK_SET);
20         n = read(d->fd, buf, fs->blocksize);
21
22         if (n == fs->blocksize)
23                 return 0;
24         return -1;
25 }