s3: fix calculation of st_blocks in streams_xattr
authorBjörn Jacke <bj@sernet.de>
Wed, 9 Jun 2010 13:24:26 +0000 (15:24 +0200)
committerBjörn Jacke <bj@sernet.de>
Wed, 9 Jun 2010 13:27:38 +0000 (15:27 +0200)
Thanks to Joachim Schmitz for finding that miscalculation.

source3/modules/vfs_streams_xattr.c

index aa7ef080e648b2567b9d3dccd9e4ebaf33b2e80e..218e5ec078875242779655a54ea8ebaaef5c3366 100644 (file)
@@ -238,7 +238,7 @@ static int streams_xattr_fstat(vfs_handle_struct *handle, files_struct *fsp,
        sbuf->st_ex_ino = stream_inode(sbuf, io->xattr_name);
        sbuf->st_ex_mode &= ~S_IFMT;
         sbuf->st_ex_mode |= S_IFREG;
-        sbuf->st_ex_blocks = sbuf->st_ex_size % STAT_ST_BLOCKSIZE + 1;
+        sbuf->st_ex_blocks = sbuf->st_ex_size / STAT_ST_BLOCKSIZE + 1;
 
        return 0;
 }
@@ -291,7 +291,7 @@ static int streams_xattr_stat(vfs_handle_struct *handle,
        smb_fname->st.st_ex_mode &= ~S_IFMT;
         smb_fname->st.st_ex_mode |= S_IFREG;
         smb_fname->st.st_ex_blocks =
-           smb_fname->st.st_ex_size % STAT_ST_BLOCKSIZE + 1;
+           smb_fname->st.st_ex_size / STAT_ST_BLOCKSIZE + 1;
 
        result = 0;
  fail:
@@ -342,7 +342,7 @@ static int streams_xattr_lstat(vfs_handle_struct *handle,
        smb_fname->st.st_ex_mode &= ~S_IFMT;
         smb_fname->st.st_ex_mode |= S_IFREG;
         smb_fname->st.st_ex_blocks =
-           smb_fname->st.st_ex_size % STAT_ST_BLOCKSIZE + 1;
+           smb_fname->st.st_ex_size / STAT_ST_BLOCKSIZE + 1;
 
        result = 0;