Message types for VFS chmod

Change-Id: I76e5df4c0a386682e863e640182c59e4ab7e30be
This commit is contained in:
2014-04-30 20:37:50 +02:00
parent f90ed467fc
commit ea84447ccd
7 changed files with 35 additions and 17 deletions

View File

@@ -20,10 +20,10 @@ int fs_chmod()
register struct inode *rip;
pmode_t mode;
mode = (pmode_t) fs_m_in.REQ_MODE;
mode = fs_m_in.m_vfs_fs_chmod.mode;
/* Temporarily open the file. */
if( (rip = get_inode(fs_dev, (pino_t) fs_m_in.REQ_INODE_NR)) == NULL)
if( (rip = get_inode(fs_dev, fs_m_in.m_vfs_fs_chmod.inode)) == NULL)
return(EINVAL);
/* Now make the change. Clear setgid bit if file is not in caller's grp */
@@ -32,7 +32,7 @@ int fs_chmod()
rip->i_dirt = IN_DIRTY;
/* Return full new mode to caller. */
fs_m_out.RES_MODE = rip->i_mode;
fs_m_out.m_fs_vfs_chmod.mode = rip->i_mode;
put_inode(rip);
return(OK);

View File

@@ -16,10 +16,10 @@ int fs_chmod()
register struct inode *rip;
pmode_t mode;
mode = (pmode_t) fs_m_in.REQ_MODE;
mode = fs_m_in.m_vfs_fs_chmod.mode;
/* Temporarily open the file. */
if( (rip = get_inode(fs_dev, (pino_t) fs_m_in.REQ_INODE_NR)) == NULL)
if( (rip = get_inode(fs_dev, fs_m_in.m_vfs_fs_chmod.inode)) == NULL)
return(EINVAL);
if(rip->i_sp->s_rd_only) {
@@ -33,7 +33,7 @@ int fs_chmod()
IN_MARKDIRTY(rip);
/* Return full new mode to caller. */
fs_m_out.RES_MODE = rip->i_mode;
fs_m_out.m_fs_vfs_chmod.mode = rip->i_mode;
put_inode(rip);
return(OK);

View File

@@ -18,9 +18,9 @@ int fs_sync(message *fs_m_in, message *fs_m_out)
int fs_chmod(message *fs_m_in, message *fs_m_out)
{
struct inode *rip; /* target inode */
mode_t mode = (mode_t) fs_m_in->REQ_MODE;
mode_t mode = fs_m_in->m_vfs_fs_chmod.mode;
if( (rip = find_inode(fs_m_in->REQ_INODE_NR)) == NULL) return(EINVAL);
if( (rip = find_inode(fs_m_in->m_vfs_fs_chmod.inode)) == NULL) return(EINVAL);
get_inode(rip->i_dev, rip->i_num); /* mark inode in use */
rip->i_mode = (rip->i_mode & ~ALL_MODES) | (mode & ALL_MODES);
put_inode(rip); /* release the inode */

View File

@@ -115,14 +115,14 @@ int req_chmod(
/* Fill in request message */
m.m_type = REQ_CHMOD;
m.REQ_INODE_NR = (pino_t) inode_nr;
m.REQ_MODE = (pmode_t) rmode;
m.m_vfs_fs_chmod.inode = inode_nr;
m.m_vfs_fs_chmod.mode = rmode;
/* Send/rec request */
r = fs_sendrec(fs_e, &m);
/* Copy back actual mode. */
*new_modep = (mode_t) m.RES_MODE;
*new_modep = m.m_fs_vfs_chmod.mode;
return(r);
}