aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ntfs/layout.h
diff options
context:
space:
mode:
authorAnton Altaparmakov <aia21@cantab.net>2005-03-03 09:43:43 -0500
committerAnton Altaparmakov <aia21@cantab.net>2005-05-05 06:15:46 -0400
commit9451f8519c5e6d5d064c30033fc3d4ce77de321c (patch)
tree104eedf065c4091838a27f6e674875a035c30820 /fs/ntfs/layout.h
parent413826868fb49d200b741bcaeaf58ea5c5e45321 (diff)
NTFS: Correct sparse file handling. The compressed values need to be
checked and set in the ntfs inode as done for compressed files and the compressed size needs to be used for vfs inode->i_blocks instead of the allocated size, again, as done for compressed files. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Diffstat (limited to 'fs/ntfs/layout.h')
-rw-r--r--fs/ntfs/layout.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/ntfs/layout.h b/fs/ntfs/layout.h
index 7cb8806d4559..8d1f1326612f 100644
--- a/fs/ntfs/layout.h
+++ b/fs/ntfs/layout.h
@@ -749,10 +749,11 @@ typedef struct {
749 record header aligned to 8-byte boundary. */ 749 record header aligned to 8-byte boundary. */
750/* 34*/ u8 compression_unit; /* The compression unit expressed 750/* 34*/ u8 compression_unit; /* The compression unit expressed
751 as the log to the base 2 of the number of 751 as the log to the base 2 of the number of
752 clusters in a compression unit. 0 means not 752 clusters in a compression unit. 0 means not
753 compressed. (This effectively limits the 753 compressed. (This effectively limits the
754 compression unit size to be a power of two 754 compression unit size to be a power of two
755 clusters.) WinNT4 only uses a value of 4. */ 755 clusters.) WinNT4 only uses a value of 4.
756 Sparse files also have this set to 4. */
756/* 35*/ u8 reserved[5]; /* Align to 8-byte boundary. */ 757/* 35*/ u8 reserved[5]; /* Align to 8-byte boundary. */
757/* The sizes below are only used when lowest_vcn is zero, as otherwise it would 758/* The sizes below are only used when lowest_vcn is zero, as otherwise it would
758 be difficult to keep them up-to-date.*/ 759 be difficult to keep them up-to-date.*/
@@ -772,10 +773,10 @@ typedef struct {
772 data_size. */ 773 data_size. */
773/* sizeof(uncompressed attr) = 64*/ 774/* sizeof(uncompressed attr) = 64*/
774/* 64*/ sle64 compressed_size; /* Byte size of the attribute 775/* 64*/ sle64 compressed_size; /* Byte size of the attribute
775 value after compression. Only present when 776 value after compression. Only present when
776 compressed. Always is a multiple of the 777 compressed or sparse. Always is a multiple of
777 cluster size. Represents the actual amount of 778 the cluster size. Represents the actual amount
778 disk space being used on the disk. */ 779 of disk space being used on the disk. */
779/* sizeof(compressed attr) = 72*/ 780/* sizeof(compressed attr) = 72*/
780 } __attribute__ ((__packed__)) non_resident; 781 } __attribute__ ((__packed__)) non_resident;
781 } __attribute__ ((__packed__)) data; 782 } __attribute__ ((__packed__)) data;