cleanup
This commit is contained in:
		
							parent
							
								
									06e1f0da61
								
							
						
					
					
						commit
						90fde6e97d
					
				@ -102,24 +102,12 @@ mode_t *new_modep;
 | 
			
		||||
    r = fs_sendrec(fs_e, &m);
 | 
			
		||||
 | 
			
		||||
    /* Copy back actual mode. */
 | 
			
		||||
    if (r == OK)
 | 
			
		||||
	*new_modep = m.RES_MODE;
 | 
			
		||||
    *new_modep = m.RES_MODE;
 | 
			
		||||
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Structure for REQ_CHOWN request */
 | 
			
		||||
typedef struct chown_req {
 | 
			
		||||
        int fs_e;
 | 
			
		||||
        ino_t inode_nr;
 | 
			
		||||
        uid_t uid;
 | 
			
		||||
        gid_t gid;
 | 
			
		||||
        uid_t newuid;
 | 
			
		||||
        gid_t newgid;
 | 
			
		||||
} chown_req_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_chown          			     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
@ -471,74 +459,6 @@ mode_t dmode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Structure for REQ_MKNOD request */
 | 
			
		||||
typedef struct mknod_req {
 | 
			
		||||
        int fs_e;
 | 
			
		||||
        ino_t inode_nr;
 | 
			
		||||
        uid_t uid;
 | 
			
		||||
        gid_t gid;
 | 
			
		||||
        mode_t rmode;
 | 
			
		||||
        dev_t dev;
 | 
			
		||||
        char *lastc;
 | 
			
		||||
} mknod_req_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_newnode	      			     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
PUBLIC int req_newnode(fs_e, uid, gid, dmode, dev, res)
 | 
			
		||||
endpoint_t fs_e;
 | 
			
		||||
uid_t uid;
 | 
			
		||||
gid_t gid;
 | 
			
		||||
mode_t dmode;
 | 
			
		||||
dev_t dev;
 | 
			
		||||
struct node_details *res;
 | 
			
		||||
{
 | 
			
		||||
    int r;
 | 
			
		||||
    message m;
 | 
			
		||||
 | 
			
		||||
    /* Fill in request message */
 | 
			
		||||
    m.m_type = REQ_NEWNODE;
 | 
			
		||||
    m.REQ_MODE = dmode;
 | 
			
		||||
    m.REQ_DEVx = dev;
 | 
			
		||||
    m.REQ_UID = uid;
 | 
			
		||||
    m.REQ_GID = gid;
 | 
			
		||||
 | 
			
		||||
    /* Send/rec request */
 | 
			
		||||
    r = fs_sendrec(fs_e, &m);
 | 
			
		||||
 | 
			
		||||
    res->fs_e = m.m_source;
 | 
			
		||||
    res->inode_nr = m.RES_INODE_NR;
 | 
			
		||||
    res->fmode = m.RES_MODE;
 | 
			
		||||
    res->fsize = m.RES_FILE_SIZE;
 | 
			
		||||
    res->dev = m.RES_DEV;
 | 
			
		||||
    res->uid= m.RES_UID;
 | 
			
		||||
    res->gid= m.RES_GID;
 | 
			
		||||
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_mountpoint	                 	     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
PUBLIC int req_mountpoint(fs_e, inode_nr)
 | 
			
		||||
endpoint_t fs_e;
 | 
			
		||||
ino_t inode_nr;
 | 
			
		||||
{
 | 
			
		||||
    int r;
 | 
			
		||||
    message m;
 | 
			
		||||
 | 
			
		||||
    /* Fill in request message */
 | 
			
		||||
    m.m_type = REQ_MOUNTPOINT_S;
 | 
			
		||||
    m.REQ_INODE_NR = inode_nr;
 | 
			
		||||
 | 
			
		||||
    /* Send/rec request */
 | 
			
		||||
    return fs_sendrec(fs_e, &m);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_mknod	      			     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
@ -580,6 +500,93 @@ dev_t dev;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_mountpoint	                 	     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
PUBLIC int req_mountpoint(fs_e, inode_nr)
 | 
			
		||||
endpoint_t fs_e;
 | 
			
		||||
ino_t inode_nr;
 | 
			
		||||
{
 | 
			
		||||
    int r;
 | 
			
		||||
    message m;
 | 
			
		||||
 | 
			
		||||
    /* Fill in request message */
 | 
			
		||||
    m.m_type = REQ_MOUNTPOINT_S;
 | 
			
		||||
    m.REQ_INODE_NR = inode_nr;
 | 
			
		||||
 | 
			
		||||
    /* Send/rec request */
 | 
			
		||||
    return fs_sendrec(fs_e, &m);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_newnode	      			     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
PUBLIC int req_newnode(fs_e, uid, gid, dmode, dev, res)
 | 
			
		||||
endpoint_t fs_e;
 | 
			
		||||
uid_t uid;
 | 
			
		||||
gid_t gid;
 | 
			
		||||
mode_t dmode;
 | 
			
		||||
dev_t dev;
 | 
			
		||||
struct node_details *res;
 | 
			
		||||
{
 | 
			
		||||
    int r;
 | 
			
		||||
    message m;
 | 
			
		||||
 | 
			
		||||
    /* Fill in request message */
 | 
			
		||||
    m.m_type = REQ_NEWNODE;
 | 
			
		||||
    m.REQ_MODE = dmode;
 | 
			
		||||
    m.REQ_DEVx = dev;
 | 
			
		||||
    m.REQ_UID = uid;
 | 
			
		||||
    m.REQ_GID = gid;
 | 
			
		||||
 | 
			
		||||
    /* Send/rec request */
 | 
			
		||||
    r = fs_sendrec(fs_e, &m);
 | 
			
		||||
 | 
			
		||||
    res->fs_e = m.m_source;
 | 
			
		||||
    res->inode_nr = m.RES_INODE_NR;
 | 
			
		||||
    res->fmode = m.RES_MODE;
 | 
			
		||||
    res->fsize = m.RES_FILE_SIZE;
 | 
			
		||||
    res->dev = m.RES_DEV;
 | 
			
		||||
    res->uid= m.RES_UID;
 | 
			
		||||
    res->gid= m.RES_GID;
 | 
			
		||||
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_newdriver          			     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
PUBLIC int req_newdriver(fs_e, dev, driver_e)
 | 
			
		||||
endpoint_t fs_e;
 | 
			
		||||
Dev_t dev;
 | 
			
		||||
endpoint_t driver_e;
 | 
			
		||||
{
 | 
			
		||||
/* Note: this is the only request function that doesn't use the 
 | 
			
		||||
 * fs_sendrec internal routine, since we want to avoid the dead
 | 
			
		||||
 * driver recovery mechanism here. This function is actually called 
 | 
			
		||||
 * during the recovery.
 | 
			
		||||
 */
 | 
			
		||||
    message m;
 | 
			
		||||
    int r;
 | 
			
		||||
 | 
			
		||||
    /* Fill in request message */
 | 
			
		||||
    m.m_type = REQ_NEW_DRIVER;
 | 
			
		||||
    m.REQ_DEV = dev;
 | 
			
		||||
    m.REQ_DRIVER_E = driver_e;
 | 
			
		||||
 | 
			
		||||
    /* Issue request */
 | 
			
		||||
    if ((r = sendrec(fs_e, &m)) != OK) {
 | 
			
		||||
        printf("VFSreq_newdriver: error sending message to %d: %d\n", fs_e, r);
 | 
			
		||||
        return r;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return OK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_putnode				     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
@ -676,19 +683,6 @@ struct node_details *res_nodep;
 | 
			
		||||
    return OK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Structure for REQ_READ and REQ_WRITE request */
 | 
			
		||||
typedef struct readwrite_req {
 | 
			
		||||
	int rw_flag;
 | 
			
		||||
	endpoint_t fs_e;
 | 
			
		||||
        endpoint_t user_e;
 | 
			
		||||
	ino_t inode_nr;
 | 
			
		||||
	unsigned short inode_index;
 | 
			
		||||
	int seg;
 | 
			
		||||
	u64_t pos;
 | 
			
		||||
	unsigned int num_of_bytes;
 | 
			
		||||
	char *user_addr;
 | 
			
		||||
} readwrite_req_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_readwrite				     *
 | 
			
		||||
@ -936,16 +930,6 @@ endpoint_t fs_e;
 | 
			
		||||
    return fs_sendrec(fs_e, &m);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Structure for REQ_UNLINK request */
 | 
			
		||||
typedef struct unlink_req {
 | 
			
		||||
        int fs_e;
 | 
			
		||||
        ino_t d_inode_nr;
 | 
			
		||||
        uid_t uid;
 | 
			
		||||
        gid_t gid;
 | 
			
		||||
        char *lastc;
 | 
			
		||||
} unlink_req_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_unlink	     			     *
 | 
			
		||||
@ -1018,38 +1002,6 @@ time_t modtime;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				req_newdriver          			     *
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
PUBLIC int req_newdriver(fs_e, dev, driver_e)
 | 
			
		||||
endpoint_t fs_e;
 | 
			
		||||
Dev_t dev;
 | 
			
		||||
endpoint_t driver_e;
 | 
			
		||||
{
 | 
			
		||||
/* Note: this is the only request function that doesn't use the 
 | 
			
		||||
 * fs_sendrec internal routine, since we want to avoid the dead
 | 
			
		||||
 * driver recovery mechanism here. This function is actually called 
 | 
			
		||||
 * during the recovery.
 | 
			
		||||
 */
 | 
			
		||||
    message m;
 | 
			
		||||
    int r;
 | 
			
		||||
 | 
			
		||||
    /* Fill in request message */
 | 
			
		||||
    m.m_type = REQ_NEW_DRIVER;
 | 
			
		||||
    m.REQ_DEV = dev;
 | 
			
		||||
    m.REQ_DRIVER_E = driver_e;
 | 
			
		||||
 | 
			
		||||
    /* Issue request */
 | 
			
		||||
    if ((r = sendrec(fs_e, &m)) != OK) {
 | 
			
		||||
        printf("VFSreq_newdriver: error sending message to %d: %d\n", fs_e, r);
 | 
			
		||||
        return r;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return OK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,6 @@
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Structure for response that contains inode details */
 | 
			
		||||
typedef struct node_details {
 | 
			
		||||
	endpoint_t fs_e;
 | 
			
		||||
@ -23,64 +22,6 @@ typedef struct node_details {
 | 
			
		||||
	dev_t dev;
 | 
			
		||||
} node_details_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Structure for REQ_OPEN request */
 | 
			
		||||
typedef struct open_req {
 | 
			
		||||
        endpoint_t fs_e;
 | 
			
		||||
        ino_t inode_nr;
 | 
			
		||||
	char *lastc;
 | 
			
		||||
	int oflags;
 | 
			
		||||
	mode_t omode;	
 | 
			
		||||
	uid_t uid;
 | 
			
		||||
	gid_t gid;
 | 
			
		||||
} open_req_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Structure for REQ_CLONE_OPCL request */
 | 
			
		||||
typedef struct clone_opcl_req {
 | 
			
		||||
        int fs_e;
 | 
			
		||||
        dev_t dev;
 | 
			
		||||
} clone_opcl_req_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Structure for REQ_READSUPER request */
 | 
			
		||||
typedef struct readsuper_req {
 | 
			
		||||
	endpoint_t fs_e;
 | 
			
		||||
        time_t boottime;
 | 
			
		||||
        endpoint_t driver_e;
 | 
			
		||||
        dev_t dev;
 | 
			
		||||
        char *slink_storage;
 | 
			
		||||
        char isroot;
 | 
			
		||||
        char readonly;
 | 
			
		||||
} readsuper_req_t;
 | 
			
		||||
 | 
			
		||||
/* Structure for response of READSUPER request */
 | 
			
		||||
typedef struct readsuper_res {
 | 
			
		||||
	endpoint_t fs_e;
 | 
			
		||||
	ino_t inode_nr;
 | 
			
		||||
	mode_t fmode;
 | 
			
		||||
	off_t fsize;
 | 
			
		||||
        int blocksize;
 | 
			
		||||
        off_t maxsize;
 | 
			
		||||
} readsuper_res_t;
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
/* Structure for REQ_LOOKUP request */
 | 
			
		||||
typedef struct lookup_req {
 | 
			
		||||
        /* Fields filled in by the caller */
 | 
			
		||||
        char *path;
 | 
			
		||||
        char *lastc;
 | 
			
		||||
        int flags;
 | 
			
		||||
	/* Fields filled in by the path name traversal method */
 | 
			
		||||
        endpoint_t fs_e;
 | 
			
		||||
        ino_t start_dir;
 | 
			
		||||
        ino_t root_dir;     /* process' root directory */
 | 
			
		||||
        uid_t uid;
 | 
			
		||||
        gid_t gid;
 | 
			
		||||
        unsigned char symloop;
 | 
			
		||||
} lookup_req_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Structure for a lookup response */
 | 
			
		||||
typedef struct lookup_res {
 | 
			
		||||
	endpoint_t fs_e;
 | 
			
		||||
 | 
			
		||||
@ -242,17 +242,11 @@ PUBLIC int do_fstatfs()
 | 
			
		||||
PUBLIC int do_lstat()
 | 
			
		||||
{
 | 
			
		||||
/* Perform the lstat(name, buf) system call. */
 | 
			
		||||
  struct lookup_req lookup_req;
 | 
			
		||||
  struct vnode *vp;
 | 
			
		||||
  int r;
 | 
			
		||||
 | 
			
		||||
  if (fetch_name(m_in.name1, m_in.name1_length, M1) != OK) return(err_code);
 | 
			
		||||
  
 | 
			
		||||
  /* Fill in lookup request fields */
 | 
			
		||||
  lookup_req.path = user_fullpath;
 | 
			
		||||
  lookup_req.lastc = NULL;
 | 
			
		||||
  lookup_req.flags = EAT_PATH_OPAQUE;
 | 
			
		||||
        
 | 
			
		||||
  /* Request lookup */
 | 
			
		||||
  if ((r = lookup_vp(PATH_RET_SYMLINK, 0 /*!use_realuid*/, &vp)) != OK)
 | 
			
		||||
	return r;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user