]> Zhao Yanbai Git Server - minix.git/commitdiff
64-bit REQ_TRC_START, REQ_TRC_END
authorBen Gras <ben@minix3.org>
Mon, 24 Feb 2014 16:28:29 +0000 (17:28 +0100)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:11 +0000 (17:05 +0200)
Change-Id: I567804209695b5ec0d83a453d93e36cbf8900f1a

include/minix/vfsif.h
lib/libpuffs/link.c
lib/libsffs/write.c
servers/ext2/link.c
servers/mfs/link.c
servers/pfs/link.c
servers/vfs/request.c

index 2044b55ff22b7b5c88af2ae3e3df574b0402a45e..9ced295a25716057f9de08425dfbade43276b3ee 100644 (file)
 #define REQ_REN_OLD_DIR                m9_l3
 #define REQ_ROOT_INO           m9_l4
 #define REQ_SEEK_POS           m9_ull2
-#define REQ_TRC_END_HI         m9_l4
-#define REQ_TRC_END_LO         m9_l5
-#define REQ_TRC_START_HI       m9_l2
-#define REQ_TRC_START_LO       m9_l3
+#define REQ_TRC_START          m9_ull1
+#define REQ_TRC_END            m9_ull2
 #define REQ_UCRED_SIZE         m9_s4 
 #define REQ_UID                        m9_s4
 
index 931f78c267dfee6c9f964a71db39712b4a9bd963..f934d07774987efb57b3a80897f3590fc79251a7 100644 (file)
@@ -22,8 +22,8 @@ int fs_ftrunc(void)
   if ((pn = puffs_pn_nodewalk(global_pu, 0, &fs_m_in.REQ_INODE_NR)) == NULL)
           return(EINVAL);
 
-  start = fs_m_in.REQ_TRC_START_LO;
-  end = fs_m_in.REQ_TRC_END_LO;
+  start = fs_m_in.REQ_TRC_START;
+  end = fs_m_in.REQ_TRC_END;
 
   if (end == 0) {
        struct vattr va;
index 68fe2402c709f2f4cd9d85194099a738e074f8f8..4d852ea997e6f5f0a89721248c9b0edf5e7ad6ec 100644 (file)
@@ -131,8 +131,8 @@ int do_ftrunc(void)
 
   if (IS_DIR(ino)) return EISDIR;
 
-  start = make64(m_in.REQ_TRC_START_LO, m_in.REQ_TRC_START_HI);
-  end = make64(m_in.REQ_TRC_END_LO, m_in.REQ_TRC_END_HI);
+  start = m_in.REQ_TRC_START;
+  end = m_in.REQ_TRC_END;
 
   if (end == 0) {
        /* Truncate or expand the file. */
index 51471413298d8c71ff9f98116bcb17c592cd9fd8..d4144acabd25dd52483fa0fd222649da83c9d9d8 100644 (file)
@@ -523,8 +523,8 @@ int fs_ftrunc(void)
   if( (rip = find_inode(fs_dev, (pino_t) fs_m_in.REQ_INODE_NR)) == NULL)
          return(EINVAL);
 
-  start = fs_m_in.REQ_TRC_START_LO;
-  end = fs_m_in.REQ_TRC_END_LO;
+  start = fs_m_in.REQ_TRC_START;
+  end = fs_m_in.REQ_TRC_END;
 
   if (end == 0)
          r = truncate_inode(rip, start);
index a0bb32a1cdcb545aca80fbd31436c1dabf76b32a..d6d482ca28701789de6219bb83e2d4965294587b 100644 (file)
@@ -498,8 +498,8 @@ int fs_ftrunc(void)
   if(rip->i_sp->s_rd_only) {
        r = EROFS;
   } else {
-    start = fs_m_in.REQ_TRC_START_LO;
-    end = fs_m_in.REQ_TRC_END_LO;
+    start = fs_m_in.REQ_TRC_START;
+    end = fs_m_in.REQ_TRC_END;
 
     if (end == 0)
          r = truncate_inode(rip, start);
index fe3938221c1d036d864951607925d6685fa01795..3648c4e0462c99a809e84f4f39c3d97bc07bcb8f 100644 (file)
@@ -16,7 +16,7 @@ int fs_ftrunc(message *fs_m_in, message *fs_m_out)
 
   if( (rip = find_inode(inumb)) == NULL) return(EINVAL);
 
-  start = fs_m_in->REQ_TRC_START_LO;
+  start = fs_m_in->REQ_TRC_START;
 
   return truncate_inode(rip, start);
 }
index 58a64061d270c3575b1747ef41f6e825a8e19881..09389dc1a9d93212962fd06ec7a1da388be7b52a 100644 (file)
@@ -252,25 +252,13 @@ int req_ftrunc(endpoint_t fs_e, ino_t inode_nr, off_t start, off_t end)
   /* Fill in request message */
   m.m_type = REQ_FTRUNC;
   m.REQ_INODE_NR = (pino_t) inode_nr;
+  m.REQ_TRC_START = start;
+  m.REQ_TRC_END = end;
 
-  m.REQ_TRC_START_LO = ex64lo(start);
-  if (vmp->m_fs_flags & RES_64BIT) {
-       m.REQ_TRC_START_HI = ex64hi(start);
-  } else if (start > INT_MAX) {
+  if (!(vmp->m_fs_flags & RES_64BIT) &&
+       ((start > INT_MAX) || (end > INT_MAX))) {
        /* FS does not support 64-bit off_t and 32 bits is not enough */
        return EINVAL;
-  } else {
-       m.REQ_TRC_START_HI = 0;
-  }
-
-  m.REQ_TRC_END_LO = ex64lo(end);
-  if (vmp->m_fs_flags & RES_64BIT) {
-       m.REQ_TRC_END_HI = ex64hi(end);
-  } else if (end > INT_MAX) {
-       /* FS does not support 64-bit off_t and 32 bits is not enough */
-       return EINVAL;
-  } else {
-       m.REQ_TRC_END_HI = 0;
   }
 
   /* Send/rec request */