diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | fs.c | 2 | ||||
-rw-r--r-- | tar.c | 4 |
3 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2006-03-08 Ben Asselstine <benasselstine@gmail.com> + + * tar.c (tar_header2stat): Correctly setting `st_blocks' of ST. + + 2006-03-07 Ben Asselstine <benasselstine@gmail.com> * store-gzip.c (read_next): remove static from nested @@ -211,7 +211,7 @@ _make_node (struct node **n, struct node *dir, char* name, mode_t m) st.st_nlink = 1; /* number of subdir plus two, one otherwise. */ st.st_size = 0; st.st_blksize = 1024; /* optimal block size for reading */ - st.st_blocks = 1; /* XXX */ + st.st_blocks = 1; st.st_gen = 0; if (S_ISDIR (m)) @@ -173,6 +173,10 @@ tar_header2stat (io_statbuf_t *st, tar_record_t *header) } //st->st_size = hstat.st_size; st->st_size = from_oct (1 + 12, header->header.size); + if (st->st_size > 0) + st->st_blocks = ((st->st_size - 1) / 512) + 1; + else + st->st_blocks = 0; st->st_mtime = from_oct (1 + 12, header->header.mtime); st->st_atime = from_oct (1 + 12, header->header.atime); st->st_ctime = from_oct (1 + 12, header->header.ctime); |