]> Zhao Yanbai Git Server - minix.git/commitdiff
Message types for VFS putnode
authorLionel Sambuc <lionel@minix3.org>
Mon, 28 Apr 2014 17:12:06 +0000 (19:12 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:28 +0000 (17:05 +0200)
Change-Id: I0802ccaaaa6ee1b4eb96d62b08f9795c790ce39b

include/minix/ipc.h
lib/libpuffs/inode.c
lib/libsffs/inode.c
lib/libvtreefs/inode.c
servers/ext2/inode.c
servers/iso9660fs/inode.c
servers/mfs/inode.c
servers/pfs/inode.c
servers/vfs/request.c

index 7450ac3f07fb656977123195fbc1f6b1695fc8f9..5279e16ced9f9146a7dc1b30973703af50fa9730 100644 (file)
@@ -292,6 +292,14 @@ typedef struct {
 } mess_fs_vfs_newnode;
 _ASSERT_MSG_SIZE(mess_fs_vfs_newnode);
 
+typedef struct {
+       uint64_t count;
+       ino_t inode;
+
+       uint8_t data[40];
+} mess_vfs_fs_putnode;
+_ASSERT_MSG_SIZE(mess_vfs_fs_putnode);
+
 typedef struct {
        ino_t inode;
 
@@ -457,6 +465,7 @@ typedef struct {
        mess_fs_vfs_lookup m_fs_vfs_lookup;
        mess_vfs_fs_mountpoint m_vfs_fs_mountpoint;
        mess_vfs_fs_new_driver m_vfs_fs_new_driver;
+       mess_vfs_fs_putnode m_vfs_fs_putnode;
        mess_vfs_fs_rdlink m_vfs_fs_rdlink;
        mess_fs_vfs_rdlink m_fs_vfs_rdlink;
        mess_vfs_fs_readsuper m_vfs_fs_readsuper;
index 66aabadd3d3b3679133cdd1298ac12b644e3aab1..629ea8dcaf1eb1ab699b129c588424ea6f2c4573 100644 (file)
@@ -37,8 +37,8 @@ int fs_putnode(void)
  * Release unused pnode.
  */
   struct puffs_node *pn;
-  int count = fs_m_in.REQ_COUNT;
-  pino_t inum = fs_m_in.REQ_INODE_NR;
+  int count = fs_m_in.m_vfs_fs_putnode.count;
+  ino_t inum = fs_m_in.m_vfs_fs_putnode.inode;
 
   if ((pn = puffs_pn_nodewalk(global_pu, 0, &inum)) == NULL) {
        /* XXX Probably removed from the list, see puffs_pn_remove() */
index aed2f09bc3714ecb94b9c6060cf2d9edb5ab3ed0..7ef877facc3e4b9a69fcc8f862d0c8b4dd8be4c4 100644 (file)
@@ -280,10 +280,10 @@ int do_putnode(void)
   struct inode *ino;
   int count;
 
-  if ((ino = find_inode(m_in.REQ_INODE_NR)) == NULL)
+  if ((ino = find_inode(m_in.m_vfs_fs_putnode.inode)) == NULL)
        return EINVAL;
 
-  count = m_in.REQ_COUNT;
+  count = m_in.m_vfs_fs_putnode.count;
 
   if (count <= 0 || count > ino->i_ref) return EINVAL;
 
index baf835118d5631edaab8b62cfabe1647edf5e8e7..002d0d1e25eb81320f35326d955912f43f93b5f6 100644 (file)
@@ -589,11 +589,11 @@ int fs_putnode(void)
        struct inode *node;
 
        /* Get the inode specified by its number. */
-       if ((node = find_inode(fs_m_in.REQ_INODE_NR)) == NULL)
+       if ((node = find_inode(fs_m_in.m_vfs_fs_putnode.inode)) == NULL)
                return EINVAL;
 
        /* Decrease the reference count. */
-       node->i_count -= fs_m_in.REQ_COUNT - 1;
+       node->i_count -= fs_m_in.m_vfs_fs_putnode.count - 1;
 
        assert(node->i_count > 0);
 
index 0fdc3f38edeac187e4a3512d473d256e3ca13079..eb7799e1f3a146e8c0e732a3f013566d9fbf76a8 100644 (file)
@@ -38,15 +38,15 @@ int fs_putnode(void)
   struct inode *rip;
   int count;
 
-  rip = find_inode(fs_dev, (pino_t) fs_m_in.REQ_INODE_NR);
+  rip = find_inode(fs_dev, fs_m_in.m_vfs_fs_putnode.inode);
 
   if (!rip) {
-       printf("%s:%d put_inode: inode #%u dev: %llx not found\n", __FILE__,
-               __LINE__, (pino_t) fs_m_in.REQ_INODE_NR, fs_dev);
+       printf("%s:%d put_inode: inode #%llu dev: %llx not found\n", __FILE__,
+               __LINE__, fs_m_in.m_vfs_fs_putnode.inode, fs_dev);
        panic("fs_putnode failed");
   }
 
-  count = fs_m_in.REQ_COUNT;
+  count = fs_m_in.m_vfs_fs_putnode.count;
   if (count <= 0) {
        printf("%s:%d put_inode: bad value for count: %d\n", __FILE__,
                __LINE__, count);
index 03830b7ece3647265b171d0424b4e55ad23623cc..07ba73bf07cbd7f9837f6efb6d8f09fc06a81d2e 100644 (file)
@@ -16,10 +16,10 @@ int fs_putnode()
   int count;
   struct dir_record *dir = NULL;
 
-  dir = get_dir_record(fs_m_in.REQ_INODE_NR);
+  dir = get_dir_record(fs_m_in.m_vfs_fs_putnode.inode);
   release_dir_record(dir);
   
-  count = fs_m_in.REQ_COUNT;
+  count = fs_m_in.m_vfs_fs_putnode.count;
 
   if (count <= 0) return(EINVAL);
   
index ce529a1e0357baa9bd83a80d7a945c28bf6fae85..69f6d4b444034f785740c33cd7bf108558567a77 100644 (file)
@@ -42,15 +42,15 @@ int fs_putnode(void)
   struct inode *rip;
   int count;
   
-  rip = find_inode(fs_dev, (pino_t) fs_m_in.REQ_INODE_NR);
+  rip = find_inode(fs_dev, fs_m_in.m_vfs_fs_putnode.inode);
 
   if(!rip) {
-         printf("%s:%d put_inode: inode #%u dev: %llx not found\n", __FILE__,
-                __LINE__, (pino_t) fs_m_in.REQ_INODE_NR, fs_dev);
+         printf("%s:%d put_inode: inode #%llu dev: %llx not found\n", __FILE__,
+                __LINE__, fs_m_in.m_vfs_fs_putnode.inode, fs_dev);
          panic("fs_putnode failed");
   }
 
-  count = fs_m_in.REQ_COUNT;
+  count = fs_m_in.m_vfs_fs_putnode.count;
   if (count <= 0) {
        printf("%s:%d put_inode: bad value for count: %d\n", __FILE__,
               __LINE__, count);
index 6d1b3d2f46209c0ee2579bdddff4c036080e9578..29a2d198f56400cb31de1445f53635cc8d13f962 100644 (file)
@@ -33,17 +33,17 @@ int fs_putnode(message *fs_m_in, message *fs_m_out)
   struct inode *rip;
   int count;
   dev_t dev;
-  pino_t inum;
+  ino_t inum;
 
-  rip = find_inode( (pino_t) fs_m_in->REQ_INODE_NR);
+  rip = find_inode(fs_m_in->m_vfs_fs_putnode.inode);
 
   if(!rip) {
-         printf("%s:%d put_inode: inode #%ld dev: %llx not found\n", __FILE__,
-                __LINE__, fs_m_in->REQ_INODE_NR, fs_m_in->REQ_DEV);
+         printf("%s:%d put_inode: inode #%ld not found\n", __FILE__,
+                __LINE__, fs_m_in->m_vfs_fs_putnode.inode);
          panic("fs_putnode failed");
   }
 
-  count = fs_m_in->REQ_COUNT;
+  count = fs_m_in->m_vfs_fs_putnode.count;
   if (count <= 0) {
        printf("%s:%d put_inode: bad value for count: %d\n", __FILE__,
               __LINE__, count);
index 99264760a3edb49db5db0c2b76cb2fd98d2e026f..25a8d38b920cf18f94dabed7f6c093fbaa36b4d4 100644 (file)
@@ -701,8 +701,8 @@ int count;
 
   /* Fill in request message */
   m.m_type = REQ_PUTNODE;
-  m.REQ_INODE_NR = (pino_t) inode_nr;
-  m.REQ_COUNT = count;
+  m.m_vfs_fs_putnode.inode = inode_nr;
+  m.m_vfs_fs_putnode.count = count;
 
   /* Send/rec request */
   return fs_sendrec(fs_e, &m);