git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Multiuser, Capabilities and Access Controls (#54)
[lunaix-os.git]
/
lunaix-os
/
kernel
/
fs
/
iso9660
/
inode.c
diff --git
a/lunaix-os/kernel/fs/iso9660/inode.c
b/lunaix-os/kernel/fs/iso9660/inode.c
index ab66ca45a933b76e68cd4a86226d636f6186b5e8..ab6a396e1000b2035a0522fece687c5bbf9a0e0e 100644
(file)
--- a/
lunaix-os/kernel/fs/iso9660/inode.c
+++ b/
lunaix-os/kernel/fs/iso9660/inode.c
@@
-1,5
+1,5
@@
#include <klibc/string.h>
#include <klibc/string.h>
-#include <lunaix/fs.h>
+#include <lunaix/fs
/api
.h>
#include "iso9660.h"
#include <lunaix/mm/cake.h>
#include <lunaix/mm/valloc.h>
#include "iso9660.h"
#include <lunaix/mm/cake.h>
#include <lunaix/mm/valloc.h>
@@
-87,10
+87,17
@@
iso9660_fill_inode(struct v_inode* inode, struct iso_drecache* dir, int ino)
inode->ctime = iso9660_dt2unix(&xattr->ctime);
inode->mtime = iso9660_dt2unix(&xattr->mtime);
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);
}
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;
inode->ctime = dir->ctime ? dir->ctime : inode->ctime;
inode->mtime = dir->mtime ? dir->mtime : inode->mtime;