|
Kmods SIG |
63c143 |
From fa3cacf544636b2dc48cfb2f277a2071f14d66a2 Mon Sep 17 00:00:00 2001
|
|
Kmods SIG |
63c143 |
From: Kari Argillander <kari.argillander@gmail.com>
|
|
Kmods SIG |
63c143 |
Date: Thu, 26 Aug 2021 11:56:29 +0300
|
|
Kmods SIG |
63c143 |
Subject: [Backport fa3cacf54463] src: Use kernel ALIGN macros over driver
|
|
Kmods SIG |
63c143 |
specific
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
The static checkers (Smatch) were complaining because QuadAlign() was
|
|
Kmods SIG |
63c143 |
buggy. If you try to align something higher than UINT_MAX it got
|
|
Kmods SIG |
63c143 |
truncated to a u32.
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
Smatch warning was:
|
|
Kmods SIG |
63c143 |
src/attrib.c:383 attr_set_size_res()
|
|
Kmods SIG |
63c143 |
warn: was expecting a 64 bit value instead of '~7'
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
So that this will not happen again we will change all these macros to
|
|
Kmods SIG |
63c143 |
kernel made ones. This can also help some other static analyzing tools
|
|
Kmods SIG |
63c143 |
to give us better warnings.
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
Patch was generated with Coccinelle script and after that some style
|
|
Kmods SIG |
63c143 |
issue was hand fixed.
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
Coccinelle script:
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
virtual patch
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
@alloc depends on patch@
|
|
Kmods SIG |
63c143 |
expression x;
|
|
Kmods SIG |
63c143 |
@@
|
|
Kmods SIG |
63c143 |
(
|
|
Kmods SIG |
63c143 |
- #define QuadAlign(n) (((n) + 7u) & (~7u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- QuadAlign(x)
|
|
Kmods SIG |
63c143 |
+ ALIGN(x, 8)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define IsQuadAligned(n) (!((size_t)(n)&7u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- IsQuadAligned(x)
|
|
Kmods SIG |
63c143 |
+ IS_ALIGNED(x, 8)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define Quad2Align(n) (((n) + 15u) & (~15u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- Quad2Align(x)
|
|
Kmods SIG |
63c143 |
+ ALIGN(x, 16)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define IsQuad2Aligned(n) (!((size_t)(n)&15u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- IsQuad2Aligned(x)
|
|
Kmods SIG |
63c143 |
+ IS_ALIGNED(x, 16)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define Quad4Align(n) (((n) + 31u) & (~31u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- Quad4Align(x)
|
|
Kmods SIG |
63c143 |
+ ALIGN(x, 32)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define IsSizeTAligned(n) (!((size_t)(n) & (sizeof(size_t) - 1)))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- IsSizeTAligned(x)
|
|
Kmods SIG |
63c143 |
+ IS_ALIGNED(x, sizeof(size_t))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define DwordAlign(n) (((n) + 3u) & (~3u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- DwordAlign(x)
|
|
Kmods SIG |
63c143 |
+ ALIGN(x, 4)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define IsDwordAligned(n) (!((size_t)(n)&3u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- IsDwordAligned(x)
|
|
Kmods SIG |
63c143 |
+ IS_ALIGNED(x, 4)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define WordAlign(n) (((n) + 1u) & (~1u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- WordAlign(x)
|
|
Kmods SIG |
63c143 |
+ ALIGN(x, 2)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- #define IsWordAligned(n) (!((size_t)(n)&1u))
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
- IsWordAligned(x)
|
|
Kmods SIG |
63c143 |
+ IS_ALIGNED(x, 2)
|
|
Kmods SIG |
63c143 |
|
|
|
Kmods SIG |
63c143 |
)
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Kmods SIG |
63c143 |
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
|
|
Kmods SIG |
63c143 |
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
|
|
Kmods SIG |
63c143 |
---
|
|
Kmods SIG |
63c143 |
src/attrib.c | 2 +-
|
|
Kmods SIG |
63c143 |
src/debug.h | 11 -----------
|
|
Kmods SIG |
63c143 |
src/frecord.c | 14 +++++++-------
|
|
Kmods SIG |
63c143 |
src/fslog.c | 32 ++++++++++++++++----------------
|
|
Kmods SIG |
63c143 |
src/fsntfs.c | 4 ++--
|
|
Kmods SIG |
63c143 |
src/index.c | 4 ++--
|
|
Kmods SIG |
63c143 |
src/inode.c | 8 ++++----
|
|
Kmods SIG |
63c143 |
src/namei.c | 2 +-
|
|
Kmods SIG |
63c143 |
src/ntfs.h | 16 ++++++++--------
|
|
Kmods SIG |
63c143 |
src/ntfs_fs.h | 2 +-
|
|
Kmods SIG |
63c143 |
src/record.c | 10 +++++-----
|
|
Kmods SIG |
63c143 |
src/super.c | 10 +++++-----
|
|
Kmods SIG |
63c143 |
src/xattr.c | 8 ++++----
|
|
Kmods SIG |
63c143 |
13 files changed, 56 insertions(+), 67 deletions(-)
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
diff --git a/src/attrib.c b/src/attrib.c
|
|
Kmods SIG |
63c143 |
index 046dc57f75f2169b47e7078c251f26b05ec69b42..c15467ec12ed88ad05390fb57a47f396d4391f3e 100644
|
|
Kmods SIG |
63c143 |
--- a/src/attrib.c
|
|
Kmods SIG |
63c143 |
+++ b/src/attrib.c
|
|
Kmods SIG |
63c143 |
@@ -380,7 +380,7 @@ static int attr_set_size_res(struct ntfs_inode *ni, struct ATTRIB *attr,
|
|
Kmods SIG |
63c143 |
u32 rsize = le32_to_cpu(attr->res.data_size);
|
|
Kmods SIG |
63c143 |
u32 tail = used - aoff - asize;
|
|
Kmods SIG |
63c143 |
char *next = Add2Ptr(attr, asize);
|
|
Kmods SIG |
63c143 |
- s64 dsize = QuadAlign(new_size) - QuadAlign(rsize);
|
|
Kmods SIG |
63c143 |
+ s64 dsize = ALIGN(new_size, 8) - ALIGN(rsize, 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (dsize < 0) {
|
|
Kmods SIG |
63c143 |
memmove(next + dsize, next, tail);
|
|
Kmods SIG |
63c143 |
diff --git a/src/debug.h b/src/debug.h
|
|
Kmods SIG |
63c143 |
index 357d9f4dfba78792b443e05318d189c9167db1f8..aff4cead9f58ff3222d68d54d853808f0e17a6dc 100644
|
|
Kmods SIG |
63c143 |
--- a/src/debug.h
|
|
Kmods SIG |
63c143 |
+++ b/src/debug.h
|
|
Kmods SIG |
63c143 |
@@ -15,17 +15,6 @@
|
|
Kmods SIG |
63c143 |
#define PtrOffset(B, O) ((size_t)((size_t)(O) - (size_t)(B)))
|
|
Kmods SIG |
63c143 |
#endif
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
-#define QuadAlign(n) (((n) + 7u) & (~7u))
|
|
Kmods SIG |
63c143 |
-#define IsQuadAligned(n) (!((size_t)(n)&7u))
|
|
Kmods SIG |
63c143 |
-#define Quad2Align(n) (((n) + 15u) & (~15u))
|
|
Kmods SIG |
63c143 |
-#define IsQuad2Aligned(n) (!((size_t)(n)&15u))
|
|
Kmods SIG |
63c143 |
-#define Quad4Align(n) (((n) + 31u) & (~31u))
|
|
Kmods SIG |
63c143 |
-#define IsSizeTAligned(n) (!((size_t)(n) & (sizeof(size_t) - 1)))
|
|
Kmods SIG |
63c143 |
-#define DwordAlign(n) (((n) + 3u) & (~3u))
|
|
Kmods SIG |
63c143 |
-#define IsDwordAligned(n) (!((size_t)(n)&3u))
|
|
Kmods SIG |
63c143 |
-#define WordAlign(n) (((n) + 1u) & (~1u))
|
|
Kmods SIG |
63c143 |
-#define IsWordAligned(n) (!((size_t)(n)&1u))
|
|
Kmods SIG |
63c143 |
-
|
|
Kmods SIG |
63c143 |
#ifdef CONFIG_PRINTK
|
|
Kmods SIG |
63c143 |
__printf(2, 3)
|
|
Kmods SIG |
63c143 |
void ntfs_printk(const struct super_block *sb, const char *fmt, ...);
|
|
Kmods SIG |
63c143 |
diff --git a/src/frecord.c b/src/frecord.c
|
|
Kmods SIG |
63c143 |
index e94d830b2f4a12f84bf4870219507b21042b41c0..8e2242147ebfcdc4bea3cf19d79276725f09be9b 100644
|
|
Kmods SIG |
63c143 |
--- a/src/frecord.c
|
|
Kmods SIG |
63c143 |
+++ b/src/frecord.c
|
|
Kmods SIG |
63c143 |
@@ -1249,7 +1249,7 @@ static int ni_expand_mft_list(struct ntfs_inode *ni)
|
|
Kmods SIG |
63c143 |
if (err < 0)
|
|
Kmods SIG |
63c143 |
goto out;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- run_size = QuadAlign(err);
|
|
Kmods SIG |
63c143 |
+ run_size = ALIGN(err, 8);
|
|
Kmods SIG |
63c143 |
err = 0;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (plen < svcn) {
|
|
Kmods SIG |
63c143 |
@@ -1269,7 +1269,7 @@ static int ni_expand_mft_list(struct ntfs_inode *ni)
|
|
Kmods SIG |
63c143 |
if (err < 0)
|
|
Kmods SIG |
63c143 |
goto out;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- run_size = QuadAlign(err);
|
|
Kmods SIG |
63c143 |
+ run_size = ALIGN(err, 8);
|
|
Kmods SIG |
63c143 |
err = 0;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (plen < evcn + 1 - svcn) {
|
|
Kmods SIG |
63c143 |
@@ -1392,7 +1392,7 @@ int ni_insert_nonresident(struct ntfs_inode *ni, enum ATTR_TYPE type,
|
|
Kmods SIG |
63c143 |
struct ATTRIB *attr;
|
|
Kmods SIG |
63c143 |
bool is_ext =
|
|
Kmods SIG |
63c143 |
(flags & (ATTR_FLAG_SPARSED | ATTR_FLAG_COMPRESSED)) && !svcn;
|
|
Kmods SIG |
63c143 |
- u32 name_size = QuadAlign(name_len * sizeof(short));
|
|
Kmods SIG |
63c143 |
+ u32 name_size = ALIGN(name_len * sizeof(short), 8);
|
|
Kmods SIG |
63c143 |
u32 name_off = is_ext ? SIZEOF_NONRESIDENT_EX : SIZEOF_NONRESIDENT;
|
|
Kmods SIG |
63c143 |
u32 run_off = name_off + name_size;
|
|
Kmods SIG |
63c143 |
u32 run_size, asize;
|
|
Kmods SIG |
63c143 |
@@ -1403,7 +1403,7 @@ int ni_insert_nonresident(struct ntfs_inode *ni, enum ATTR_TYPE type,
|
|
Kmods SIG |
63c143 |
if (err < 0)
|
|
Kmods SIG |
63c143 |
goto out;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- run_size = QuadAlign(err);
|
|
Kmods SIG |
63c143 |
+ run_size = ALIGN(err, 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (plen < len) {
|
|
Kmods SIG |
63c143 |
err = -EINVAL;
|
|
Kmods SIG |
63c143 |
@@ -1463,8 +1463,8 @@ int ni_insert_resident(struct ntfs_inode *ni, u32 data_size,
|
|
Kmods SIG |
63c143 |
struct ATTRIB **new_attr, struct mft_inode **mi)
|
|
Kmods SIG |
63c143 |
{
|
|
Kmods SIG |
63c143 |
int err;
|
|
Kmods SIG |
63c143 |
- u32 name_size = QuadAlign(name_len * sizeof(short));
|
|
Kmods SIG |
63c143 |
- u32 asize = SIZEOF_RESIDENT + name_size + QuadAlign(data_size);
|
|
Kmods SIG |
63c143 |
+ u32 name_size = ALIGN(name_len * sizeof(short), 8);
|
|
Kmods SIG |
63c143 |
+ u32 asize = SIZEOF_RESIDENT + name_size + ALIGN(data_size, 8);
|
|
Kmods SIG |
63c143 |
struct ATTRIB *attr;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
err = ni_insert_attr(ni, type, name, name_len, asize, SIZEOF_RESIDENT,
|
|
Kmods SIG |
63c143 |
@@ -2853,7 +2853,7 @@ static bool ni_update_parent(struct ntfs_inode *ni, struct NTFS_DUP_INFO *dup,
|
|
Kmods SIG |
63c143 |
} else if (!attr->non_res) {
|
|
Kmods SIG |
63c143 |
u32 data_size = le32_to_cpu(attr->res.data_size);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- dup->alloc_size = cpu_to_le64(QuadAlign(data_size));
|
|
Kmods SIG |
63c143 |
+ dup->alloc_size = cpu_to_le64(ALIGN(data_size, 8));
|
|
Kmods SIG |
63c143 |
dup->data_size = cpu_to_le64(data_size);
|
|
Kmods SIG |
63c143 |
} else {
|
|
Kmods SIG |
63c143 |
u64 new_valid = ni->i_valid;
|
|
Kmods SIG |
63c143 |
diff --git a/src/fslog.c b/src/fslog.c
|
|
Kmods SIG |
63c143 |
index 397ba6a956e7f0e25661c88c0c91ec089c4d2103..5a118c351441cc2deca390c49cfd87d75f3e587b 100644
|
|
Kmods SIG |
63c143 |
--- a/src/fslog.c
|
|
Kmods SIG |
63c143 |
+++ b/src/fslog.c
|
|
Kmods SIG |
63c143 |
@@ -456,7 +456,7 @@ static inline bool is_rst_page_hdr_valid(u32 file_off,
|
|
Kmods SIG |
63c143 |
return false;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
ro = le16_to_cpu(rhdr->ra_off);
|
|
Kmods SIG |
63c143 |
- if (!IsQuadAligned(ro) || ro > sys_page)
|
|
Kmods SIG |
63c143 |
+ if (!IS_ALIGNED(ro, 8) || ro > sys_page)
|
|
Kmods SIG |
63c143 |
return false;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
end_usa = ((sys_page >> SECTOR_SHIFT) + 1) * sizeof(short);
|
|
Kmods SIG |
63c143 |
@@ -488,7 +488,7 @@ static inline bool is_rst_area_valid(const struct RESTART_HDR *rhdr)
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
off = le16_to_cpu(ra->client_off);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- if (!IsQuadAligned(off) || ro + off > SECTOR_SIZE - sizeof(short))
|
|
Kmods SIG |
63c143 |
+ if (!IS_ALIGNED(off, 8) || ro + off > SECTOR_SIZE - sizeof(short))
|
|
Kmods SIG |
63c143 |
return false;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
off += cl * sizeof(struct CLIENT_REC);
|
|
Kmods SIG |
63c143 |
@@ -526,8 +526,8 @@ static inline bool is_rst_area_valid(const struct RESTART_HDR *rhdr)
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
/* The log page data offset and record header length must be quad-aligned */
|
|
Kmods SIG |
63c143 |
- if (!IsQuadAligned(le16_to_cpu(ra->data_off)) ||
|
|
Kmods SIG |
63c143 |
- !IsQuadAligned(le16_to_cpu(ra->rec_hdr_len)))
|
|
Kmods SIG |
63c143 |
+ if (!IS_ALIGNED(le16_to_cpu(ra->data_off), 8) ||
|
|
Kmods SIG |
63c143 |
+ !IS_ALIGNED(le16_to_cpu(ra->rec_hdr_len), 8))
|
|
Kmods SIG |
63c143 |
return false;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
return true;
|
|
Kmods SIG |
63c143 |
@@ -1355,9 +1355,9 @@ static void log_create(struct ntfs_log *log, u32 l_size, const u64 last_lsn,
|
|
Kmods SIG |
63c143 |
log->l_flags |= NTFSLOG_MULTIPLE_PAGE_IO;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
/* Compute the log page values */
|
|
Kmods SIG |
63c143 |
- log->data_off = QuadAlign(
|
|
Kmods SIG |
63c143 |
+ log->data_off = ALIGN(
|
|
Kmods SIG |
63c143 |
offsetof(struct RECORD_PAGE_HDR, fixups) +
|
|
Kmods SIG |
63c143 |
- sizeof(short) * ((log->page_size >> SECTOR_SHIFT) + 1));
|
|
Kmods SIG |
63c143 |
+ sizeof(short) * ((log->page_size >> SECTOR_SHIFT) + 1), 8);
|
|
Kmods SIG |
63c143 |
log->data_size = log->page_size - log->data_off;
|
|
Kmods SIG |
63c143 |
log->record_header_len = sizeof(struct LFS_RECORD_HDR);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
@@ -1365,9 +1365,9 @@ static void log_create(struct ntfs_log *log, u32 l_size, const u64 last_lsn,
|
|
Kmods SIG |
63c143 |
log->reserved = log->data_size - log->record_header_len;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
/* Compute the restart page values. */
|
|
Kmods SIG |
63c143 |
- log->ra_off = QuadAlign(
|
|
Kmods SIG |
63c143 |
+ log->ra_off = ALIGN(
|
|
Kmods SIG |
63c143 |
offsetof(struct RESTART_HDR, fixups) +
|
|
Kmods SIG |
63c143 |
- sizeof(short) * ((log->sys_page_size >> SECTOR_SHIFT) + 1));
|
|
Kmods SIG |
63c143 |
+ sizeof(short) * ((log->sys_page_size >> SECTOR_SHIFT) + 1), 8);
|
|
Kmods SIG |
63c143 |
log->restart_size = log->sys_page_size - log->ra_off;
|
|
Kmods SIG |
63c143 |
log->ra_size = struct_size(log->ra, clients, 1);
|
|
Kmods SIG |
63c143 |
log->current_openlog_count = open_log_count;
|
|
Kmods SIG |
63c143 |
@@ -1496,7 +1496,7 @@ static int next_log_lsn(struct ntfs_log *log, const struct LFS_RECORD_HDR *rh,
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
vbo = hdr_off + log->data_off;
|
|
Kmods SIG |
63c143 |
} else {
|
|
Kmods SIG |
63c143 |
- vbo = QuadAlign(end);
|
|
Kmods SIG |
63c143 |
+ vbo = ALIGN(end, 8);
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
/* Compute the lsn based on the file offset and the sequence count */
|
|
Kmods SIG |
63c143 |
@@ -2982,7 +2982,7 @@ static struct ATTRIB *attr_create_nonres_log(struct ntfs_sb_info *sbi,
|
|
Kmods SIG |
63c143 |
__le16 flags)
|
|
Kmods SIG |
63c143 |
{
|
|
Kmods SIG |
63c143 |
struct ATTRIB *attr;
|
|
Kmods SIG |
63c143 |
- u32 name_size = QuadAlign(name_len * sizeof(short));
|
|
Kmods SIG |
63c143 |
+ u32 name_size = ALIGN(name_len * sizeof(short), 8);
|
|
Kmods SIG |
63c143 |
bool is_ext = flags & (ATTR_FLAG_COMPRESSED | ATTR_FLAG_SPARSED);
|
|
Kmods SIG |
63c143 |
u32 asize = name_size +
|
|
Kmods SIG |
63c143 |
(is_ext ? SIZEOF_NONRESIDENT_EX : SIZEOF_NONRESIDENT);
|
|
Kmods SIG |
63c143 |
@@ -3220,7 +3220,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
|
|
Kmods SIG |
63c143 |
goto dirty_vol;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
memmove(attr, attr2, dlen);
|
|
Kmods SIG |
63c143 |
- rec->used = cpu_to_le32(QuadAlign(roff + dlen));
|
|
Kmods SIG |
63c143 |
+ rec->used = cpu_to_le32(ALIGN(roff + dlen, 8));
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
mi->dirty = true;
|
|
Kmods SIG |
63c143 |
break;
|
|
Kmods SIG |
63c143 |
@@ -3231,7 +3231,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
|
|
Kmods SIG |
63c143 |
used = le32_to_cpu(rec->used);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (!check_if_attr(rec, lrh) || dlen < SIZEOF_RESIDENT ||
|
|
Kmods SIG |
63c143 |
- !IsQuadAligned(asize) ||
|
|
Kmods SIG |
63c143 |
+ !IS_ALIGNED(asize, 8) ||
|
|
Kmods SIG |
63c143 |
Add2Ptr(attr2, asize) > Add2Ptr(lrh, rec_len) ||
|
|
Kmods SIG |
63c143 |
dlen > record_size - used) {
|
|
Kmods SIG |
63c143 |
goto dirty_vol;
|
|
Kmods SIG |
63c143 |
@@ -3296,7 +3296,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
|
|
Kmods SIG |
63c143 |
if (nsize > asize && nsize - asize > record_size - used)
|
|
Kmods SIG |
63c143 |
goto dirty_vol;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- nsize = QuadAlign(nsize);
|
|
Kmods SIG |
63c143 |
+ nsize = ALIGN(nsize, 8);
|
|
Kmods SIG |
63c143 |
data_off = le16_to_cpu(attr->res.data_off);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (nsize < asize) {
|
|
Kmods SIG |
63c143 |
@@ -3341,7 +3341,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
|
|
Kmods SIG |
63c143 |
goto dirty_vol;
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- nsize = QuadAlign(nsize);
|
|
Kmods SIG |
63c143 |
+ nsize = ALIGN(nsize, 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
memmove(Add2Ptr(attr, nsize), Add2Ptr(attr, asize),
|
|
Kmods SIG |
63c143 |
used - le16_to_cpu(lrh->record_off) - asize);
|
|
Kmods SIG |
63c143 |
@@ -5103,8 +5103,8 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
|
|
Kmods SIG |
63c143 |
rh->sys_page_size = cpu_to_le32(log->page_size);
|
|
Kmods SIG |
63c143 |
rh->page_size = cpu_to_le32(log->page_size);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- t16 = QuadAlign(offsetof(struct RESTART_HDR, fixups) +
|
|
Kmods SIG |
63c143 |
- sizeof(short) * t16);
|
|
Kmods SIG |
63c143 |
+ t16 = ALIGN(offsetof(struct RESTART_HDR, fixups) +
|
|
Kmods SIG |
63c143 |
+ sizeof(short) * t16, 8);
|
|
Kmods SIG |
63c143 |
rh->ra_off = cpu_to_le16(t16);
|
|
Kmods SIG |
63c143 |
rh->minor_ver = cpu_to_le16(1); // 0x1A:
|
|
Kmods SIG |
63c143 |
rh->major_ver = cpu_to_le16(1); // 0x1C:
|
|
Kmods SIG |
63c143 |
diff --git a/src/fsntfs.c b/src/fsntfs.c
|
|
Kmods SIG |
63c143 |
index c6599c514acf630183cd5eeef7a1630ea0ec6a75..e887921a117d9124c6d4987397a694f7c99a09ea 100644
|
|
Kmods SIG |
63c143 |
--- a/src/fsntfs.c
|
|
Kmods SIG |
63c143 |
+++ b/src/fsntfs.c
|
|
Kmods SIG |
63c143 |
@@ -1944,7 +1944,7 @@ int ntfs_security_init(struct ntfs_sb_info *sbi)
|
|
Kmods SIG |
63c143 |
sbi->security.next_id = SECURITY_ID_FIRST;
|
|
Kmods SIG |
63c143 |
/* Always write new security at the end of bucket */
|
|
Kmods SIG |
63c143 |
sbi->security.next_off =
|
|
Kmods SIG |
63c143 |
- Quad2Align(sds_size - SecurityDescriptorsBlockSize);
|
|
Kmods SIG |
63c143 |
+ ALIGN(sds_size - SecurityDescriptorsBlockSize, 16);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
off = 0;
|
|
Kmods SIG |
63c143 |
ne = NULL;
|
|
Kmods SIG |
63c143 |
@@ -2096,7 +2096,7 @@ int ntfs_insert_security(struct ntfs_sb_info *sbi,
|
|
Kmods SIG |
63c143 |
struct NTFS_DE_SII sii_e;
|
|
Kmods SIG |
63c143 |
struct SECURITY_HDR *d_security;
|
|
Kmods SIG |
63c143 |
u32 new_sec_size = size_sd + SIZEOF_SECURITY_HDR;
|
|
Kmods SIG |
63c143 |
- u32 aligned_sec_size = Quad2Align(new_sec_size);
|
|
Kmods SIG |
63c143 |
+ u32 aligned_sec_size = ALIGN(new_sec_size, 16);
|
|
Kmods SIG |
63c143 |
struct SECURITY_KEY hash_key;
|
|
Kmods SIG |
63c143 |
struct ntfs_fnd *fnd_sdh = NULL;
|
|
Kmods SIG |
63c143 |
const struct INDEX_ROOT *root_sdh;
|
|
Kmods SIG |
63c143 |
diff --git a/src/index.c b/src/index.c
|
|
Kmods SIG |
63c143 |
index 189d46e2c38db2696073df47d778e1e190cc0d1f..cc03cb953dd0c6f76aa900a7ee8ae2daf41d55b2 100644
|
|
Kmods SIG |
63c143 |
--- a/src/index.c
|
|
Kmods SIG |
63c143 |
+++ b/src/index.c
|
|
Kmods SIG |
63c143 |
@@ -702,7 +702,7 @@ static struct NTFS_DE *hdr_find_e(const struct ntfs_index *indx,
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (max_idx >= nslots) {
|
|
Kmods SIG |
63c143 |
u16 *ptr;
|
|
Kmods SIG |
63c143 |
- int new_slots = QuadAlign(2 * nslots);
|
|
Kmods SIG |
63c143 |
+ int new_slots = ALIGN(2 * nslots, 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
ptr = ntfs_malloc(sizeof(u16) * new_slots);
|
|
Kmods SIG |
63c143 |
if (ptr)
|
|
Kmods SIG |
63c143 |
@@ -959,7 +959,7 @@ static struct indx_node *indx_new(struct ntfs_index *indx,
|
|
Kmods SIG |
63c143 |
index->rhdr.fix_num = cpu_to_le16(fn);
|
|
Kmods SIG |
63c143 |
index->vbn = cpu_to_le64(vbn);
|
|
Kmods SIG |
63c143 |
hdr = &index->ihdr;
|
|
Kmods SIG |
63c143 |
- eo = QuadAlign(sizeof(struct INDEX_BUFFER) + fn * sizeof(short));
|
|
Kmods SIG |
63c143 |
+ eo = ALIGN(sizeof(struct INDEX_BUFFER) + fn * sizeof(short), 8);
|
|
Kmods SIG |
63c143 |
hdr->de_off = cpu_to_le32(eo);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
e = Add2Ptr(hdr, eo);
|
|
Kmods SIG |
63c143 |
diff --git a/src/inode.c b/src/inode.c
|
|
Kmods SIG |
63c143 |
index ed64489edf73ddec8fd582851d3ef2ec79625d27..3a857e575ef23d059b5eb761d3b91df52a592037 100644
|
|
Kmods SIG |
63c143 |
--- a/src/inode.c
|
|
Kmods SIG |
63c143 |
+++ b/src/inode.c
|
|
Kmods SIG |
63c143 |
@@ -1335,7 +1335,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
63c143 |
fname->dup.ea_size = fname->dup.reparse = 0;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
dsize = le16_to_cpu(new_de->key_size);
|
|
Kmods SIG |
63c143 |
- asize = QuadAlign(SIZEOF_RESIDENT + dsize);
|
|
Kmods SIG |
63c143 |
+ asize = ALIGN(SIZEOF_RESIDENT + dsize, 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
attr->type = ATTR_NAME;
|
|
Kmods SIG |
63c143 |
attr->size = cpu_to_le32(asize);
|
|
Kmods SIG |
63c143 |
@@ -1349,7 +1349,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (security_id == SECURITY_ID_INVALID) {
|
|
Kmods SIG |
63c143 |
/* Insert security attribute */
|
|
Kmods SIG |
63c143 |
- asize = SIZEOF_RESIDENT + QuadAlign(sd_size);
|
|
Kmods SIG |
63c143 |
+ asize = SIZEOF_RESIDENT + ALIGN(sd_size, 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
attr->type = ATTR_SECURE;
|
|
Kmods SIG |
63c143 |
attr->size = cpu_to_le32(asize);
|
|
Kmods SIG |
63c143 |
@@ -1472,7 +1472,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
63c143 |
attr->id = cpu_to_le16(aid++);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
/* resident or non resident? */
|
|
Kmods SIG |
63c143 |
- asize = QuadAlign(SIZEOF_RESIDENT + nsize);
|
|
Kmods SIG |
63c143 |
+ asize = ALIGN(SIZEOF_RESIDENT + nsize, 8);
|
|
Kmods SIG |
63c143 |
t16 = PtrOffset(rec, attr);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (asize + t16 + 8 > sbi->record_size) {
|
|
Kmods SIG |
63c143 |
@@ -1508,7 +1508,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
63c143 |
goto out5;
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- asize = SIZEOF_NONRESIDENT + QuadAlign(err);
|
|
Kmods SIG |
63c143 |
+ asize = SIZEOF_NONRESIDENT + ALIGN(err, 8);
|
|
Kmods SIG |
63c143 |
inode->i_size = nsize;
|
|
Kmods SIG |
63c143 |
} else {
|
|
Kmods SIG |
63c143 |
attr->res.data_off = SIZEOF_RESIDENT_LE;
|
|
Kmods SIG |
63c143 |
diff --git a/src/namei.c b/src/namei.c
|
|
Kmods SIG |
63c143 |
index b1ccd66172f29d2e3a324ab620483c44602294f7..0626844e6bdc72ccd21d839175205875d4b52f63 100644
|
|
Kmods SIG |
63c143 |
--- a/src/namei.c
|
|
Kmods SIG |
63c143 |
+++ b/src/namei.c
|
|
Kmods SIG |
63c143 |
@@ -57,7 +57,7 @@ int fill_name_de(struct ntfs_sb_info *sbi, void *buf, const struct qstr *name,
|
|
Kmods SIG |
63c143 |
fname->type = FILE_NAME_POSIX;
|
|
Kmods SIG |
63c143 |
data_size = fname_full_size(fname);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- e->size = cpu_to_le16(QuadAlign(data_size) + sizeof(struct NTFS_DE));
|
|
Kmods SIG |
63c143 |
+ e->size = cpu_to_le16(ALIGN(data_size, 8) + sizeof(struct NTFS_DE));
|
|
Kmods SIG |
63c143 |
e->key_size = cpu_to_le16(data_size);
|
|
Kmods SIG |
63c143 |
e->flags = 0;
|
|
Kmods SIG |
63c143 |
e->res = 0;
|
|
Kmods SIG |
63c143 |
diff --git a/src/ntfs.h b/src/ntfs.h
|
|
Kmods SIG |
63c143 |
index 16da514af124695bf751459672adb009301a9cdc..f6d6f1bd312e75ac5c5a61c9baa3d4cb7c5c9f19 100644
|
|
Kmods SIG |
63c143 |
--- a/src/ntfs.h
|
|
Kmods SIG |
63c143 |
+++ b/src/ntfs.h
|
|
Kmods SIG |
63c143 |
@@ -392,8 +392,8 @@ static inline u64 attr_ondisk_size(const struct ATTRIB *attr)
|
|
Kmods SIG |
63c143 |
return attr->non_res ? ((attr->flags &
|
|
Kmods SIG |
63c143 |
(ATTR_FLAG_COMPRESSED | ATTR_FLAG_SPARSED)) ?
|
|
Kmods SIG |
63c143 |
le64_to_cpu(attr->nres.total_size) :
|
|
Kmods SIG |
63c143 |
- le64_to_cpu(attr->nres.alloc_size)) :
|
|
Kmods SIG |
63c143 |
- QuadAlign(le32_to_cpu(attr->res.data_size));
|
|
Kmods SIG |
63c143 |
+ le64_to_cpu(attr->nres.alloc_size))
|
|
Kmods SIG |
63c143 |
+ : ALIGN(le32_to_cpu(attr->res.data_size), 8);
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
static inline u64 attr_size(const struct ATTRIB *attr)
|
|
Kmods SIG |
63c143 |
@@ -529,8 +529,8 @@ static_assert(sizeof(struct ATTR_LIST_ENTRY) == 0x20);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
static inline u32 le_size(u8 name_len)
|
|
Kmods SIG |
63c143 |
{
|
|
Kmods SIG |
63c143 |
- return QuadAlign(offsetof(struct ATTR_LIST_ENTRY, name) +
|
|
Kmods SIG |
63c143 |
- name_len * sizeof(short));
|
|
Kmods SIG |
63c143 |
+ return ALIGN(offsetof(struct ATTR_LIST_ENTRY, name) +
|
|
Kmods SIG |
63c143 |
+ name_len * sizeof(short), 8);
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
/* returns 0 if 'attr' has the same type and name */
|
|
Kmods SIG |
63c143 |
@@ -691,10 +691,10 @@ static inline bool de_has_vcn_ex(const struct NTFS_DE *e)
|
|
Kmods SIG |
63c143 |
sizeof(__le64)));
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
-#define MAX_BYTES_PER_NAME_ENTRY \
|
|
Kmods SIG |
63c143 |
- QuadAlign(sizeof(struct NTFS_DE) + \
|
|
Kmods SIG |
63c143 |
- offsetof(struct ATTR_FILE_NAME, name) + \
|
|
Kmods SIG |
63c143 |
- NTFS_NAME_LEN * sizeof(short))
|
|
Kmods SIG |
63c143 |
+#define MAX_BYTES_PER_NAME_ENTRY \
|
|
Kmods SIG |
63c143 |
+ ALIGN(sizeof(struct NTFS_DE) + \
|
|
Kmods SIG |
63c143 |
+ offsetof(struct ATTR_FILE_NAME, name) + \
|
|
Kmods SIG |
63c143 |
+ NTFS_NAME_LEN * sizeof(short), 8)
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
struct INDEX_HDR {
|
|
Kmods SIG |
63c143 |
__le32 de_off; // 0x00: The offset from the start of this structure
|
|
Kmods SIG |
63c143 |
diff --git a/src/ntfs_fs.h b/src/ntfs_fs.h
|
|
Kmods SIG |
63c143 |
index b5da2f06f7cbd087a3de12e0767fa2e5755033f9..d4dd19b822bc2678c3e3432a2d73f21ce0f31256 100644
|
|
Kmods SIG |
63c143 |
--- a/src/ntfs_fs.h
|
|
Kmods SIG |
63c143 |
+++ b/src/ntfs_fs.h
|
|
Kmods SIG |
63c143 |
@@ -900,7 +900,7 @@ static inline bool run_is_empty(struct runs_tree *run)
|
|
Kmods SIG |
63c143 |
/* NTFS uses quad aligned bitmaps */
|
|
Kmods SIG |
63c143 |
static inline size_t bitmap_size(size_t bits)
|
|
Kmods SIG |
63c143 |
{
|
|
Kmods SIG |
63c143 |
- return QuadAlign((bits + 7) >> 3);
|
|
Kmods SIG |
63c143 |
+ return ALIGN((bits + 7) >> 3, 8);
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
#define _100ns2seconds 10000000
|
|
Kmods SIG |
63c143 |
diff --git a/src/record.c b/src/record.c
|
|
Kmods SIG |
63c143 |
index 0d4a6251bddcbd689db9eab4993ccc9675ab3838..721c14f83e2b37389a2aa23b7bb1aeffab5fd5fb 100644
|
|
Kmods SIG |
63c143 |
--- a/src/record.c
|
|
Kmods SIG |
63c143 |
+++ b/src/record.c
|
|
Kmods SIG |
63c143 |
@@ -206,7 +206,7 @@ struct ATTRIB *mi_enum_attr(struct mft_inode *mi, struct ATTRIB *attr)
|
|
Kmods SIG |
63c143 |
return NULL;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (off >= used || off < MFTRECORD_FIXUP_OFFSET_1 ||
|
|
Kmods SIG |
63c143 |
- !IsDwordAligned(off)) {
|
|
Kmods SIG |
63c143 |
+ !IS_ALIGNED(off, 4)) {
|
|
Kmods SIG |
63c143 |
return NULL;
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
@@ -235,7 +235,7 @@ struct ATTRIB *mi_enum_attr(struct mft_inode *mi, struct ATTRIB *attr)
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
/* Can we use the first field (attr->type) */
|
|
Kmods SIG |
63c143 |
if (off + 8 > used) {
|
|
Kmods SIG |
63c143 |
- static_assert(QuadAlign(sizeof(enum ATTR_TYPE)) == 8);
|
|
Kmods SIG |
63c143 |
+ static_assert(ALIGN(sizeof(enum ATTR_TYPE), 8) == 8);
|
|
Kmods SIG |
63c143 |
return NULL;
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
@@ -539,7 +539,7 @@ bool mi_resize_attr(struct mft_inode *mi, struct ATTRIB *attr, int bytes)
|
|
Kmods SIG |
63c143 |
next = Add2Ptr(attr, asize);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
if (bytes > 0) {
|
|
Kmods SIG |
63c143 |
- dsize = QuadAlign(bytes);
|
|
Kmods SIG |
63c143 |
+ dsize = ALIGN(bytes, 8);
|
|
Kmods SIG |
63c143 |
if (used + dsize > total)
|
|
Kmods SIG |
63c143 |
return false;
|
|
Kmods SIG |
63c143 |
nsize = asize + dsize;
|
|
Kmods SIG |
63c143 |
@@ -549,7 +549,7 @@ bool mi_resize_attr(struct mft_inode *mi, struct ATTRIB *attr, int bytes)
|
|
Kmods SIG |
63c143 |
used += dsize;
|
|
Kmods SIG |
63c143 |
rsize += dsize;
|
|
Kmods SIG |
63c143 |
} else {
|
|
Kmods SIG |
63c143 |
- dsize = QuadAlign(-bytes);
|
|
Kmods SIG |
63c143 |
+ dsize = ALIGN(-bytes, 8);
|
|
Kmods SIG |
63c143 |
if (dsize > asize)
|
|
Kmods SIG |
63c143 |
return false;
|
|
Kmods SIG |
63c143 |
nsize = asize - dsize;
|
|
Kmods SIG |
63c143 |
@@ -596,7 +596,7 @@ int mi_pack_runs(struct mft_inode *mi, struct ATTRIB *attr,
|
|
Kmods SIG |
63c143 |
return err;
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- new_run_size = QuadAlign(err);
|
|
Kmods SIG |
63c143 |
+ new_run_size = ALIGN(err, 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
memmove(next + new_run_size - run_size, next + dsize, tail);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
diff --git a/src/super.c b/src/super.c
|
|
Kmods SIG |
63c143 |
index 903975b7e832f627476fd8da4ec6e5fc9f080818..7a501bca26d7916d23dc64d7919d4ad1384d5765 100644
|
|
Kmods SIG |
63c143 |
--- a/src/super.c
|
|
Kmods SIG |
63c143 |
+++ b/src/super.c
|
|
Kmods SIG |
63c143 |
@@ -809,9 +809,9 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
|
|
Kmods SIG |
63c143 |
sbi->attr_size_tr = (5 * record_size >> 4); // ~320 bytes
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
sbi->max_bytes_per_attr =
|
|
Kmods SIG |
63c143 |
- record_size - QuadAlign(MFTRECORD_FIXUP_OFFSET_1) -
|
|
Kmods SIG |
63c143 |
- QuadAlign(((record_size >> SECTOR_SHIFT) * sizeof(short))) -
|
|
Kmods SIG |
63c143 |
- QuadAlign(sizeof(enum ATTR_TYPE));
|
|
Kmods SIG |
63c143 |
+ record_size - ALIGN(MFTRECORD_FIXUP_OFFSET_1, 8) -
|
|
Kmods SIG |
63c143 |
+ ALIGN(((record_size >> SECTOR_SHIFT) * sizeof(short)), 8) -
|
|
Kmods SIG |
63c143 |
+ ALIGN(sizeof(enum ATTR_TYPE), 8);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
sbi->index_size = boot->index_size < 0
|
|
Kmods SIG |
63c143 |
? 1u << (-boot->index_size)
|
|
Kmods SIG |
63c143 |
@@ -859,9 +859,9 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
|
|
Kmods SIG |
63c143 |
rec->rhdr.fix_off = cpu_to_le16(MFTRECORD_FIXUP_OFFSET_1);
|
|
Kmods SIG |
63c143 |
fn = (sbi->record_size >> SECTOR_SHIFT) + 1;
|
|
Kmods SIG |
63c143 |
rec->rhdr.fix_num = cpu_to_le16(fn);
|
|
Kmods SIG |
63c143 |
- ao = QuadAlign(MFTRECORD_FIXUP_OFFSET_1 + sizeof(short) * fn);
|
|
Kmods SIG |
63c143 |
+ ao = ALIGN(MFTRECORD_FIXUP_OFFSET_1 + sizeof(short) * fn, 8);
|
|
Kmods SIG |
63c143 |
rec->attr_off = cpu_to_le16(ao);
|
|
Kmods SIG |
63c143 |
- rec->used = cpu_to_le32(ao + QuadAlign(sizeof(enum ATTR_TYPE)));
|
|
Kmods SIG |
63c143 |
+ rec->used = cpu_to_le32(ao + ALIGN(sizeof(enum ATTR_TYPE), 8));
|
|
Kmods SIG |
63c143 |
rec->total = cpu_to_le32(sbi->record_size);
|
|
Kmods SIG |
63c143 |
((struct ATTRIB *)Add2Ptr(rec, ao))->type = ATTR_END;
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
diff --git a/src/xattr.c b/src/xattr.c
|
|
Kmods SIG |
63c143 |
index 98871c895e77b165bede3fbd1e50b91d5e07b106..6b17d46b9506ccaa6a6a06dfaf4dde00524186e2 100644
|
|
Kmods SIG |
63c143 |
--- a/src/xattr.c
|
|
Kmods SIG |
63c143 |
+++ b/src/xattr.c
|
|
Kmods SIG |
63c143 |
@@ -26,9 +26,9 @@
|
|
Kmods SIG |
63c143 |
static inline size_t unpacked_ea_size(const struct EA_FULL *ea)
|
|
Kmods SIG |
63c143 |
{
|
|
Kmods SIG |
63c143 |
return ea->size ? le32_to_cpu(ea->size)
|
|
Kmods SIG |
63c143 |
- : DwordAlign(struct_size(
|
|
Kmods SIG |
63c143 |
- ea, name,
|
|
Kmods SIG |
63c143 |
- 1 + ea->name_len + le16_to_cpu(ea->elength)));
|
|
Kmods SIG |
63c143 |
+ : ALIGN(struct_size(
|
|
Kmods SIG |
63c143 |
+ ea, name,
|
|
Kmods SIG |
63c143 |
+ 1 + ea->name_len + le16_to_cpu(ea->elength)), 4);
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
static inline size_t packed_ea_size(const struct EA_FULL *ea)
|
|
Kmods SIG |
63c143 |
@@ -289,7 +289,7 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
|
|
Kmods SIG |
63c143 |
goto out;
|
|
Kmods SIG |
63c143 |
}
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
- add = DwordAlign(struct_size(ea_all, name, 1 + name_len + val_size));
|
|
Kmods SIG |
63c143 |
+ add = ALIGN(struct_size(ea_all, name, 1 + name_len + val_size), 4);
|
|
Kmods SIG |
63c143 |
|
|
Kmods SIG |
63c143 |
err = ntfs_read_ea(ni, &ea_all, add, &info;;
|
|
Kmods SIG |
63c143 |
if (err)
|
|
Kmods SIG |
63c143 |
--
|
|
Kmods SIG |
63c143 |
2.31.1
|
|
Kmods SIG |
63c143 |
|