struct lafs_iblk *p;
trace(1,"allocate %d/%lld %s to %lld\n", b->ino->inum,
- (long long)b->fileaddr,
+ (long long)b->fileaddr,
(b->flags & B_Index) ? "index":"data", (long long)addr);
if (b->parent == NULL) {
/* This is the root inode. Its address goes
continue;
}
}
-
+
if (b->flags & B_Index) {
struct lafs_iblk *ib = iblk(b);
if (ib->sched_cnt) {
lafs_sched_blk(b);
list_del_init(&b->leafs);
-
+
lafs_cluster_allocate(b, 0);
}
fs->checkpointing |= CHECKPOINT_END;
if (!(b->flags & B_Sched))
abort();
- if (!(b->flags & B_Index) &&
+ if (!(b->flags & B_Index) &&
b->ino->type == TypeInodeFile &&
dblk(b)->my_inode &&
(dblk(b)->my_inode->iflags & I_Dirty))
*
* A write cluster always comprises a whole number of rows - it is padded
* with zeros if necessary.
- * However block addressing follow columns, so the blocks written to
+ * However block addressing follow columns, so the blocks written to
* a cluster may well not be contiguously addressed.
*
* There are 'width' blocks (or columns) in a row, and either:
}
if (head_start)
cluster_closehead(wc, head_start);
-
+
ch->Hlength = __cpu_to_le16(wc->chead_size);
ch->Clength = __cpu_to_le16(cluster_size);
ch->verify_type = VerifyNull;
ch->checksum = calc_cluster_csum(ch);
dv = dev_by_num(fs, wc->seg.dev);
-
+
for (i = 0; i < wc->chead_blocks; i++) {
int dev;
loff_t sect;
struct lafs_dblk *db;
struct lafs *fs = ino->fs;
int hash = (long)ino;
-
+
hash ^= bnum;
hash ^= hash >> 10;
hash &= (1<<HASH_BITS)-1;
hash, &piece);
*indexp = dir->md.file.seed;
if (piece &&
- lafs_dir_extract(db->b.data, dir->fs->blockbits-8, &de,
+ lafs_dir_extract(db->b.data, dir->fs->blockbits-8, &de,
piece, indexp)->target == 0)
hash = *indexp +1;
else
if (buf[1])
return 0;
switch (buf[0]) {
- default: p = 0;
+ default: p = 0;
break;
case 1: /* indirect */
}
cp = buf;
cp += lo*12 + 8;
-
+
addr = decode32(cp);
cp = buf;
buf = (unsigned char *)leaf->b.ino->dblock->b.data;
}
p = lafs_leaf_lookup(buf + offset,
- inode->fs->blocksize - offset, leaf->b.fileaddr,
+ inode->fs->blocksize - offset, leaf->b.fileaddr,
addr, &nextd);
if (p)
return 1;
clear_c_bit(bit, (unsigned char *)db->b.data);
if (*(u32*)(db->b.data) == 0
&& db->b.data[fs->blocksize-1] == 0 &&
- memcmp(db->b.data,
+ memcmp(db->b.data,
db->b.data+4, fs->blocksize-4) == 0) {
/* block is completely zero, so we have to punch
* a hole
if (ib->depth != 1)
abort();
-
+
ip = (void*)(ib->b.ino->dblock->b.data + ib->b.ino->metadata_size);
if (*(u16*)ip != __cpu_to_le16(IBLK_INDIRECT))
abort();
(long long)ib->b.ino->dblock->b.fileaddr);
lafs_dirty_blk(&ib->b);
}
-
-
dev->devices = __le32_to_cpu(sb->devices);
}
rv = 1;
-
+
out:
free(sb);
return rv;
found = 0;
for (i=0; i<4; i++)
found += check_state(dev, i);
-
+
if (!found)
*err = "No valid state block found on device";
return strdup("mount: no devices loaded");
if (fs->loaded_devs != fs->devices) {
- asprintf(&err,
+ asprintf(&err,
"need %d devices, only %d loaded",
fs->devices, fs->loaded_devs);
return err;
printf(" SS Index : %d\n", (f->usagetable));
printf(" Name : %.40s\n", f->name);
break;
- case TypeInodeMap:
+ case TypeInodeMap:
im = &ino->md.inodemap;
printf(" Map Size : %lu\n", (unsigned long)im->size);
break;
ip = (struct extent*)(body+2);
/* printf("body at %p\n", ip);*/
for (; __le16_to_cpu(ip->size) != 0
- && ((char*)(ip+1))<(body+bodybytes) ; ip++)
+ && ((char*)(ip+1))<(body+bodybytes) ; ip++)
printf(" %ld..%ld at %ld\n",
(unsigned long)__le32_to_cpu(ip->logical),
(unsigned long)__le32_to_cpu(ip->logical)+
if (maxss > (size - sizeof(*state)) / 4)
maxss = (size - sizeof(*state)) / 4;
for (l=0; l < maxss; l++)
- printf(" Root[%d] : %llu\n", l+1,
+ printf(" Root[%d] : %llu\n", l+1,
(unsigned long long)__le64_to_cpu(state->root_inodes[l]));
printf("\n");
(addr - d->start) * fs->blocksize + d->segment_offset,
SEEK_SET);
n = read(d->fd, buf, fs->blocksize);
-
if (n == fs->blocksize)
return 0;
csum = crc32(0, (uint32_t*)buf, LAFS_DEVBLK_SIZE);
pd->checksum = csum;
-
+
for (i=0; i<2; i++) {
lseek64(dev->fd, dev->devaddr[i], SEEK_SET);
write(dev->fd, buf, LAFS_DEVBLK_SIZE);
}
-
+
return 0;
}
memcpy(st->idtag, "LaFS-State-Block", 16);
memcpy(st->uuid, fs->uuid, 16);
memset(st->version, ' ', 16);
-
+
st->seq = __cpu_to_le32(fs->seq);
st->nextyouth = __cpu_to_le16(fs->youth_next);
st->checkpointcluster = __cpu_to_le64(fs->checkpoint_cluster);
return -1;
lseek64(d->fd, (addr - d->start) * fs->blocksize, SEEK_SET);
n = write(d->fd, buf, fs->blocksize);
-
if (n == fs->blocksize)
return 0;