#include <klibc/string.h>
-#include <lunaix/fs.h>
-#include <lunaix/fs/iso9660.h>
+#include <lunaix/fs/api.h>
+#include "iso9660.h"
#include <lunaix/mm/cake.h>
#include <lunaix/mm/valloc.h>
#include <lunaix/spike.h>
static struct v_file_ops iso_file_ops = { .close = iso9660_close,
.read = iso9660_read,
- .read_page = iso9660_read,
+ .read_page = iso9660_read_page,
.write = iso9660_write,
- .write_page = iso9660_write,
+ .write_page = iso9660_write_page,
.seek = iso9660_seek,
.readdir = iso9660_readdir };
inode->id = ino;
inode->lb_addr = dir->extent_addr;
+ inode->lb_usage = ICEIL(dir->data_size, fu_len);
inode->ops = &iso_inode_ops;
inode->default_fops = &iso_file_ops;
inode->ctime = iso9660_dt2unix(&xattr->ctime);
inode->mtime = iso9660_dt2unix(&xattr->mtime);
+ fsapi_inode_setaccess(inode, xattr->perm);
+ fsapi_inode_setowner(inode, xattr->owner.le, xattr->group.le);
+
inode->lb_addr += dir->xattr_len * dir->fu_size;
vfree(xattr);
}
+ else {
+ fsapi_inode_setaccess(inode, FSACL_u(R, W, _) | FSACL_g(R, W, _));
+ fsapi_inode_setowner(inode, 0, 0);
+ }
inode->ctime = dir->ctime ? dir->ctime : inode->ctime;
inode->mtime = dir->mtime ? dir->mtime : inode->mtime;