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

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

index 71ae426c4ad9d9dd18cb3d1047b2e6bd44b54b7b..e2e4752cc566fff0e2b09c74b3eb073b5e254f1b 100644 (file)
@@ -47,8 +47,7 @@
 #define RES_MODE               m9_s2
 #define RES_NBYTES             m9_l5
 #define RES_OFFSET             m9_s2
-#define RES_SEEK_POS_HI                m9_l3
-#define RES_SEEK_POS_LO                m9_l4
+#define RES_SEEK_POS           m9_ull2
 #define RES_SYMLOOP            m9_s3
 #define RES_UID                        m9_s4
 #define        RES_FLAGS               m9_s3
index 299517fb8eebdb55aad6dbb3937aea03e827ce30..ded210067deb3d2e835b831602675578a6f0bda4 100644 (file)
@@ -98,7 +98,7 @@ int fs_readwrite(void)
 
   if (r != OK) return(EINVAL);
 
-  fs_m_out.RES_SEEK_POS_LO = pos + bytes_done;
+  fs_m_out.RES_SEEK_POS = pos + bytes_done;
   fs_m_out.RES_NBYTES = bytes_done;
 
   return(r);
@@ -172,7 +172,7 @@ int fs_getdents(void)
   update_timens(pn, ATIME, NULL);
 
   fs_m_out.RES_NBYTES = written;
-  fs_m_out.RES_SEEK_POS_LO = pos;
+  fs_m_out.RES_SEEK_POS = pos;
 
   return(OK);
 }
index ef9acc3740d67826bd8f3c04a8ee0428a77c9046..180aafe87c588af2300ca91f95ffc9d7f3815aea 100644 (file)
@@ -67,8 +67,7 @@ int do_read(void)
   if (r < 0)
        return r;
 
-  m_out.RES_SEEK_POS_HI = ex64hi(pos);
-  m_out.RES_SEEK_POS_LO = ex64lo(pos);
+  m_out.RES_SEEK_POS = pos;
   m_out.RES_NBYTES = off;
 
   return OK;
@@ -229,8 +228,7 @@ int do_getdents(void)
        user_off += off;
   }
 
-  m_out.RES_SEEK_POS_HI = 0;
-  m_out.RES_SEEK_POS_LO = pos;
+  m_out.RES_SEEK_POS = pos;
   m_out.RES_NBYTES = user_off;
 
   return OK;
index ce6282a7226bd79992563f9f0cb1498c17f9c65e..68fe2402c709f2f4cd9d85194099a738e074f8f8 100644 (file)
@@ -103,8 +103,7 @@ int do_write(void)
   if ((r = write_file(ino, &pos, &count, &grant)) != OK)
        return r;
 
-  m_out.RES_SEEK_POS_HI = ex64hi(pos);
-  m_out.RES_SEEK_POS_LO = ex64lo(pos);
+  m_out.RES_SEEK_POS = pos;
   m_out.RES_NBYTES = count;
 
   return OK;
index ca8a50cda120d0363204e4c4ee419cd095ec5692..3de271d204da231e2c4b448ace9a2a64d1902239 100644 (file)
@@ -57,8 +57,7 @@ int fs_read(void)
        }
 
        if (r == OK) {
-               fs_m_out.RES_SEEK_POS_HI = 0;
-               fs_m_out.RES_SEEK_POS_LO = pos + len;
+               fs_m_out.RES_SEEK_POS = pos + len;
                fs_m_out.RES_NBYTES = len;
        }
 
@@ -207,8 +206,7 @@ int fs_getdents(void)
                user_off += off;
        }
 
-       fs_m_out.RES_SEEK_POS_HI = 0;
-       fs_m_out.RES_SEEK_POS_LO = pos;
+       fs_m_out.RES_SEEK_POS = pos;
        fs_m_out.RES_NBYTES = user_off;
 
        return OK;
index c1cb257c592160799e2f1596289b1821bcdace80..be856b5787af117027da276eb5451df9a7a993f2 100644 (file)
@@ -106,7 +106,7 @@ int fs_readwrite(void)
        position += (off_t) chunk;    /* position within the file */
   }
 
-  fs_m_out.RES_SEEK_POS_LO = position; /* It might change later and the VFS
+  fs_m_out.RES_SEEK_POS = position; /* It might change later and the VFS
                                            has to know this value */
 
   /* On write, update file size and access time. */
@@ -190,8 +190,7 @@ int fs_breadwrite(void)
          position += chunk;    /* position within the file */
   }
 
-  fs_m_out.RES_SEEK_POS_LO = ex64lo(position);
-  fs_m_out.RES_SEEK_POS_HI = ex64hi(position);
+  fs_m_out.RES_SEEK_POS = position;
 
   if (rdwt_err != OK) r = rdwt_err;     /* check for disk error */
   if (rdwt_err == END_OF_FILE) r = OK;
@@ -761,7 +760,7 @@ int fs_getdents(void)
        r = EINVAL;           /* The user's buffer is too small */
   else {
        fs_m_out.RES_NBYTES = userbuf_off;
-       fs_m_out.RES_SEEK_POS_LO = new_pos;
+       fs_m_out.RES_SEEK_POS = new_pos;
        rip->i_update |= ATIME;
        rip->i_dirt = IN_DIRTY;
        r = OK;
index 36b0dfea46d58166c0232786be1531f57bd899ae..cec013a0ad9d2f6a11c8d4009a65090c2d27d64c 100644 (file)
@@ -67,7 +67,7 @@ int fs_read(void) {
        position += chunk;      /* position within the file */
   }
 
-  fs_m_out.RES_SEEK_POS_LO = position; 
+  fs_m_out.RES_SEEK_POS = position; 
   
   if (rdwt_err != OK) r = rdwt_err;    /* check for disk error */
   if (rdwt_err == END_OF_FILE) r = OK;
@@ -125,8 +125,7 @@ int fs_bread(void)
     position += chunk; /* position within the file */
   }
   
-  fs_m_out.RES_SEEK_POS_LO = ex64lo(position); 
-  fs_m_out.RES_SEEK_POS_HI = ex64hi(position); 
+  fs_m_out.RES_SEEK_POS = position; 
   
   if (rdwt_err != OK) r = rdwt_err;    /* check for disk error */
   if (rdwt_err == END_OF_FILE) r = OK;
@@ -279,7 +278,7 @@ int fs_getdents(void)
   }
   
   fs_m_out.RES_NBYTES = userbuf_off;
-  fs_m_out.RES_SEEK_POS_LO = cur_pos;
+  fs_m_out.RES_SEEK_POS = cur_pos;
 
   release_dir_record(dir);             /* release the inode */
   return(OK);
index f38e157dc7fa588c9ae49290f15be603bd4b5cd5..b89afd452e5ccafea63885b5813c7703a34907e0 100644 (file)
@@ -113,7 +113,7 @@ int fs_readwrite(void)
          position += (off_t) chunk;    /* position within the file */
   }
 
-  fs_m_out.RES_SEEK_POS_LO = position; /* It might change later and the VFS
+  fs_m_out.RES_SEEK_POS = position; /* It might change later and the VFS
                                           has to know this value */
   
   /* On write, update file size and access time. */
@@ -199,8 +199,7 @@ int fs_breadwrite(void)
          position += chunk;    /* position within the file */
   }
   
-  fs_m_out.RES_SEEK_POS_LO = ex64lo(position); 
-  fs_m_out.RES_SEEK_POS_HI = ex64hi(position); 
+  fs_m_out.RES_SEEK_POS = position; 
   
   if (lmfs_rdwt_err() != OK) r = lmfs_rdwt_err();      /* check for disk error */
   if (lmfs_rdwt_err() == END_OF_FILE) r = OK;
@@ -731,7 +730,7 @@ int fs_getdents(void)
          r = EINVAL;           /* The user's buffer is too small */
   else {
          fs_m_out.RES_NBYTES = userbuf_off;
-         fs_m_out.RES_SEEK_POS_LO = new_pos;
+         fs_m_out.RES_SEEK_POS = new_pos;
          if(!rip->i_sp->s_rd_only) {
                  rip->i_update |= ATIME;
                  IN_MARKDIRTY(rip);
index f5359a096d0b19c3e45d246ca2a6ac4721b45abf..157ed67cbc5fa06497e385ca2788a04f37df763b 100644 (file)
@@ -87,7 +87,7 @@ int fs_readwrite(message *fs_m_in, message *fs_m_out)
   if (rw_flag == READING) rip->i_update |= ATIME;
   if (rw_flag == WRITING) rip->i_update |= CTIME | MTIME;
   fs_m_out->RES_NBYTES = (size_t) cum_io;
-  fs_m_out->RES_SEEK_POS_LO = rip->i_size;
+  fs_m_out->RES_SEEK_POS = rip->i_size;
 
   put_inode(rip);
   put_block(rip->i_dev, rip->i_num);
index 106f2b26720501ca530860266b661c3fc91e78e5..81740c6f1d278032f1f43e0b0fbbf4790f6cb0d6 100644 (file)
@@ -61,7 +61,7 @@ int req_breadwrite(
   if (r != OK) return(r);
 
   /* Fill in response structure */
-  *new_pos = make64(m.RES_SEEK_POS_LO, m.RES_SEEK_POS_HI);
+  *new_pos = m.RES_SEEK_POS;
   *cum_iop = m.RES_NBYTES;
 
   return(OK);
@@ -328,11 +328,7 @@ int req_getdents(
   cpf_revoke(grant_id);
 
   if (r == OK) {
-       if (vmp->m_fs_flags & RES_64BIT) {
-               *new_pos = make64(m.RES_SEEK_POS_LO, m.RES_SEEK_POS_HI);
-       } else {
-               *new_pos = m.RES_SEEK_POS_LO;
-       }
+       *new_pos = m.RES_SEEK_POS;
        r = m.RES_NBYTES;
   }
 
@@ -831,11 +827,7 @@ unsigned int *cum_iop)
 
   if (r == OK) {
        /* Fill in response structure */
-       if (vmp->m_fs_flags & RES_64BIT) {
-               *new_posp = make64(m.RES_SEEK_POS_LO, m.RES_SEEK_POS_HI);
-       } else {
-               *new_posp = m.RES_SEEK_POS_LO;
-       }
+       *new_posp = m.RES_SEEK_POS;
        *cum_iop = m.RES_NBYTES;
   }