Message types for VFS readsuper
Change-Id: I7aea85d9842459ea454420bb1687d9b8eb597914
This commit is contained in:
@@ -33,11 +33,11 @@ int fs_readsuper()
|
||||
int readonly, isroot;
|
||||
u32_t mask;
|
||||
|
||||
fs_dev = fs_m_in.REQ_DEV;
|
||||
label_gid = fs_m_in.REQ_GRANT;
|
||||
label_len = fs_m_in.REQ_PATH_LEN;
|
||||
readonly = (fs_m_in.REQ_FLAGS & REQ_RDONLY) ? 1 : 0;
|
||||
isroot = (fs_m_in.REQ_FLAGS & REQ_ISROOT) ? 1 : 0;
|
||||
fs_dev = fs_m_in.m_vfs_fs_readsuper.device;
|
||||
label_gid = fs_m_in.m_vfs_fs_readsuper.grant;
|
||||
label_len = fs_m_in.m_vfs_fs_readsuper.path_len;
|
||||
readonly = (fs_m_in.m_vfs_fs_readsuper.flags & REQ_RDONLY) ? 1 : 0;
|
||||
isroot = (fs_m_in.m_vfs_fs_readsuper.flags & REQ_ISROOT) ? 1 : 0;
|
||||
|
||||
if (label_len > sizeof(fs_dev_label))
|
||||
return(EINVAL);
|
||||
@@ -153,12 +153,12 @@ int fs_readsuper()
|
||||
}
|
||||
|
||||
/* Root inode properties */
|
||||
fs_m_out.RES_INODE_NR = root_ip->i_num;
|
||||
fs_m_out.RES_MODE = root_ip->i_mode;
|
||||
fs_m_out.RES_FILE_SIZE = root_ip->i_size;
|
||||
fs_m_out.RES_UID = root_ip->i_uid;
|
||||
fs_m_out.RES_GID = root_ip->i_gid;
|
||||
fs_m_out.RES_FLAGS = RES_HASPEEK;
|
||||
fs_m_out.m_fs_vfs_readsuper.inode = root_ip->i_num;
|
||||
fs_m_out.m_fs_vfs_readsuper.mode = root_ip->i_mode;
|
||||
fs_m_out.m_fs_vfs_readsuper.file_size = root_ip->i_size;
|
||||
fs_m_out.m_fs_vfs_readsuper.uid = root_ip->i_uid;
|
||||
fs_m_out.m_fs_vfs_readsuper.gid = root_ip->i_gid;
|
||||
fs_m_out.m_fs_vfs_readsuper.flags = RES_HASPEEK;
|
||||
|
||||
return(r);
|
||||
}
|
||||
|
||||
@@ -14,9 +14,9 @@ int fs_readsuper() {
|
||||
size_t label_len;
|
||||
int r = OK;
|
||||
|
||||
fs_dev = fs_m_in.REQ_DEV;
|
||||
label_gid = fs_m_in.REQ_GRANT;
|
||||
label_len = fs_m_in.REQ_PATH_LEN;
|
||||
fs_dev = fs_m_in.m_vfs_fs_readsuper.device;
|
||||
label_gid = fs_m_in.m_vfs_fs_readsuper.grant;
|
||||
label_len = fs_m_in.m_vfs_fs_readsuper.path_len;
|
||||
|
||||
if (label_len > sizeof(fs_dev_label))
|
||||
return(EINVAL);
|
||||
@@ -46,12 +46,12 @@ int fs_readsuper() {
|
||||
lmfs_set_blocksize(v_pri.logical_block_size_l, major(fs_dev));
|
||||
|
||||
/* Return some root inode properties */
|
||||
fs_m_out.RES_INODE_NR = ID_DIR_RECORD(v_pri.dir_rec_root);
|
||||
fs_m_out.RES_MODE = v_pri.dir_rec_root->d_mode;
|
||||
fs_m_out.RES_FILE_SIZE = v_pri.dir_rec_root->d_file_size;
|
||||
fs_m_out.RES_UID = SYS_UID; /* Always root */
|
||||
fs_m_out.RES_GID = SYS_GID; /* operator */
|
||||
fs_m_out.RES_FLAGS = RES_NOFLAGS;
|
||||
fs_m_out.m_fs_vfs_readsuper.inode = ID_DIR_RECORD(v_pri.dir_rec_root);
|
||||
fs_m_out.m_fs_vfs_readsuper.mode = v_pri.dir_rec_root->d_mode;
|
||||
fs_m_out.m_fs_vfs_readsuper.file_size = v_pri.dir_rec_root->d_file_size;
|
||||
fs_m_out.m_fs_vfs_readsuper.uid = SYS_UID; /* Always root */
|
||||
fs_m_out.m_fs_vfs_readsuper.gid = SYS_GID; /* operator */
|
||||
fs_m_out.m_fs_vfs_readsuper.flags = RES_NOFLAGS;
|
||||
|
||||
return(r);
|
||||
}
|
||||
|
||||
@@ -24,11 +24,11 @@ int fs_readsuper()
|
||||
int r;
|
||||
int readonly, isroot;
|
||||
|
||||
fs_dev = fs_m_in.REQ_DEV;
|
||||
label_gid = (cp_grant_id_t) fs_m_in.REQ_GRANT;
|
||||
label_len = (size_t) fs_m_in.REQ_PATH_LEN;
|
||||
readonly = (fs_m_in.REQ_FLAGS & REQ_RDONLY) ? 1 : 0;
|
||||
isroot = (fs_m_in.REQ_FLAGS & REQ_ISROOT) ? 1 : 0;
|
||||
fs_dev = fs_m_in.m_vfs_fs_readsuper.device;
|
||||
label_gid = fs_m_in.m_vfs_fs_readsuper.grant;
|
||||
label_len = fs_m_in.m_vfs_fs_readsuper.path_len;
|
||||
readonly = (fs_m_in.m_vfs_fs_readsuper.flags & REQ_RDONLY) ? 1 : 0;
|
||||
isroot = (fs_m_in.m_vfs_fs_readsuper.flags & REQ_ISROOT) ? 1 : 0;
|
||||
|
||||
if (label_len > sizeof(fs_dev_label))
|
||||
return(EINVAL);
|
||||
@@ -101,12 +101,12 @@ int fs_readsuper()
|
||||
superblock.s_is_root = isroot;
|
||||
|
||||
/* Root inode properties */
|
||||
fs_m_out.RES_INODE_NR = root_ip->i_num;
|
||||
fs_m_out.RES_MODE = root_ip->i_mode;
|
||||
fs_m_out.RES_FILE_SIZE = root_ip->i_size;
|
||||
fs_m_out.RES_UID = root_ip->i_uid;
|
||||
fs_m_out.RES_GID = root_ip->i_gid;
|
||||
fs_m_out.RES_FLAGS = RES_HASPEEK;
|
||||
fs_m_out.m_fs_vfs_readsuper.inode = root_ip->i_num;
|
||||
fs_m_out.m_fs_vfs_readsuper.mode = root_ip->i_mode;
|
||||
fs_m_out.m_fs_vfs_readsuper.file_size = root_ip->i_size;
|
||||
fs_m_out.m_fs_vfs_readsuper.uid = root_ip->i_uid;
|
||||
fs_m_out.m_fs_vfs_readsuper.gid = root_ip->i_gid;
|
||||
fs_m_out.m_fs_vfs_readsuper.flags = RES_HASPEEK;
|
||||
|
||||
/* Mark it dirty */
|
||||
if(!superblock.s_rd_only) {
|
||||
|
||||
@@ -797,12 +797,12 @@ int req_readsuper(
|
||||
|
||||
/* Fill in request message */
|
||||
m.m_type = REQ_READSUPER;
|
||||
m.REQ_FLAGS = 0;
|
||||
if(readonly) m.REQ_FLAGS |= REQ_RDONLY;
|
||||
if(isroot) m.REQ_FLAGS |= REQ_ISROOT;
|
||||
m.REQ_GRANT = grant_id;
|
||||
m.REQ_DEV = dev;
|
||||
m.REQ_PATH_LEN = len;
|
||||
m.m_vfs_fs_readsuper.flags = 0;
|
||||
if(readonly) m.m_vfs_fs_readsuper.flags |= REQ_RDONLY;
|
||||
if(isroot) m.m_vfs_fs_readsuper.flags |= REQ_ISROOT;
|
||||
m.m_vfs_fs_readsuper.grant = grant_id;
|
||||
m.m_vfs_fs_readsuper.device = dev;
|
||||
m.m_vfs_fs_readsuper.path_len = len;
|
||||
|
||||
/* Send/rec request */
|
||||
r = fs_sendrec(fs_e, &m);
|
||||
@@ -811,12 +811,12 @@ int req_readsuper(
|
||||
if(r == OK) {
|
||||
/* Fill in response structure */
|
||||
res->fs_e = m.m_source;
|
||||
res->inode_nr = (ino_t) m.RES_INODE_NR;
|
||||
res->fmode = (mode_t) m.RES_MODE;
|
||||
res->fsize = m.RES_FILE_SIZE;
|
||||
res->uid = (uid_t) m.RES_UID;
|
||||
res->gid = (gid_t) m.RES_GID;
|
||||
*fs_flags = m.RES_FLAGS;
|
||||
res->inode_nr = m.m_fs_vfs_readsuper.inode;
|
||||
res->fmode = m.m_fs_vfs_readsuper.mode;
|
||||
res->fsize = m.m_fs_vfs_readsuper.file_size;
|
||||
res->uid = m.m_fs_vfs_readsuper.uid;
|
||||
res->gid = m.m_fs_vfs_readsuper.gid;
|
||||
*fs_flags = m.m_fs_vfs_readsuper.flags;
|
||||
}
|
||||
|
||||
return(r);
|
||||
|
||||
Reference in New Issue
Block a user