mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
fs: fix wrong mode on files
This commit is contained in:
+6
-6
@@ -87,12 +87,12 @@ static volatile void buildentry(tar_entry* entry, void* addr){
|
||||
|
||||
}
|
||||
|
||||
entry->mode = convert(block->mode, 8);
|
||||
entry->uid = convert(block->uid, 8);
|
||||
entry->gid = convert(block->gid, 8);
|
||||
entry->mode = convert(block->mode, 7);
|
||||
entry->uid = convert(block->uid, 7);
|
||||
entry->gid = convert(block->gid, 7);
|
||||
entry->size = convert(block->size, 11);
|
||||
entry->modtime = convert(block->modtime, 11);
|
||||
entry->checksum = convert(block->checksum, 8);
|
||||
entry->checksum = convert(block->checksum, 7);
|
||||
entry->type = convert(block->type, 1);
|
||||
|
||||
if(block->link[99]){
|
||||
@@ -104,8 +104,8 @@ static volatile void buildentry(tar_entry* entry, void* addr){
|
||||
|
||||
memcpy(entry->indicator, block->indicator, 6);
|
||||
memcpy(entry->version, block->version, 2);
|
||||
entry->devmajor = convert(block->devmajor, 8);
|
||||
entry->devminor = convert(block->devminor, 8);
|
||||
entry->devmajor = convert(block->devmajor, 7);
|
||||
entry->devminor = convert(block->devminor, 7);
|
||||
|
||||
|
||||
|
||||
|
||||
+6
-2
@@ -18,9 +18,10 @@ static int tmpfs_mount(dirnode_t* mountpoint, vnode_t* device, int mountflags, v
|
||||
free(desc);
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
|
||||
desc->calls = tmpfs_getfuncs();
|
||||
mountpoint->mount = root;
|
||||
root->vnode.st.st_mode = MAKETYPE(TYPE_DIR) | 0777;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -84,7 +85,8 @@ static int tmpfs_mkdir(dirnode_t* parent, char* name, mode_t mode){
|
||||
}
|
||||
|
||||
stat* st = &node->vnode.st;
|
||||
st->st_mode = MAKETYPE(TYPE_DIR) | GETMODE(mode);
|
||||
|
||||
st->st_mode = MAKETYPE(TYPE_DIR) | mode;
|
||||
st->st_blksize = PAGE_SIZE;
|
||||
|
||||
return 0;
|
||||
@@ -117,6 +119,8 @@ static int tmpfs_create(dirnode_t* parent, char* name, mode_t mode){
|
||||
stat* st = &node->st;
|
||||
st->st_blksize = PAGE_SIZE;
|
||||
st->st_blocks = 1;
|
||||
st->st_mode = MAKETYPE(TYPE_REGULAR) | mode;
|
||||
st->st_nlink = 1;
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
+2
-2
@@ -176,7 +176,7 @@ int vfs_create(dirnode_t* ref, char* path, mode_t mode){
|
||||
spinlock_release(&lock);
|
||||
return EEXIST;
|
||||
}
|
||||
result = parent->vnode.fs->calls->create(parent, name, NULL);
|
||||
result = parent->vnode.fs->calls->create(parent, name, mode);
|
||||
|
||||
spinlock_release(&lock);
|
||||
|
||||
@@ -205,7 +205,7 @@ int vfs_mkdir(dirnode_t* ref, char* path, mode_t mode){
|
||||
return EEXIST;
|
||||
}
|
||||
|
||||
result = parent->vnode.fs->calls->mkdir(parent, name, NULL);
|
||||
result = parent->vnode.fs->calls->mkdir(parent, name, mode);
|
||||
|
||||
spinlock_release(&lock);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user