* [PATCH 00/17] xfs: unsigned flags conversion for c11
@ 2022-04-11 0:31 Dave Chinner
2022-04-11 0:31 ` [PATCH 01/17] xfs: convert buffer flags to unsigned Dave Chinner
` (16 more replies)
0 siblings, 17 replies; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
Hi folks,
With the addition of C11 compiler specs to 5.18-rc1, some compilers
are generating warnings about our use of signed flag values being
placed into unsigned fields.
The initial warning is caused by the trace event infrastructure
using __print_flags(). The array structure used internally that we
use macros to initialise defines the flags field as an unsigned
long. This causes signed int flags that set the high bit to be sign
extended and not be correct. gcc-5 then fails to detect this value
as a constant and it throws errors.
The fix for this is to just define the flag values as unsigned ints.
While we only need to convert the buffer flags to avoid the build
error for merge into 5.18-rcX, this series converts all the flags
fields that are used to initialise trace event __print_flags()
arrays. Most of these flags are stored in unsigned int variables, we
really should be declaring them as unsigned values anyway.
Hence this patch set cleans up all these flag values to use unsigned
values, use unsigned storage variables, and convert all the places
that pass them around to use unsigned varaibles. I've converted
all the value definitions to use consistent (1u << x) definitions so
it is clear they are intended to be one bit per value flags.
There are other flags values and fields in XFS that I have not
converted - these can be cleaned up over time as they currently do
not have non-obvious build-breaking potential.
This is based on 5.18-rc2.
Cheers,
Dave.
^ permalink raw reply [flat|nested] 40+ messages in thread
* [PATCH 01/17] xfs: convert buffer flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 10:05 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 02/17] xfs: convert attr type " Dave Chinner
` (15 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned. This manifests as a compiler error such as:
/kisskb/src/fs/xfs/./xfs_trace.h:432:2: note: in expansion of macro 'TP_printk'
TP_printk("dev %d:%d daddr 0x%llx bbcount 0x%x hold %d pincount %d "
^
/kisskb/src/fs/xfs/./xfs_trace.h:440:5: note: in expansion of macro '__print_flags'
__print_flags(__entry->flags, "|", XFS_BUF_FLAGS),
^
/kisskb/src/fs/xfs/xfs_buf.h:67:4: note: in expansion of macro 'XBF_UNMAPPED'
{ XBF_UNMAPPED, "UNMAPPED" }
^
/kisskb/src/fs/xfs/./xfs_trace.h:440:40: note: in expansion of macro 'XFS_BUF_FLAGS'
__print_flags(__entry->flags, "|", XFS_BUF_FLAGS),
^
/kisskb/src/fs/xfs/./xfs_trace.h: In function 'trace_raw_output_xfs_buf_flags_class':
/kisskb/src/fs/xfs/xfs_buf.h:46:23: error: initializer element is not constant
#define XBF_UNMAPPED (1 << 31)/* do not map the buffer */
as __print_flags assigns XFS_BUF_FLAGS to a structure that uses an
unsigned long for the flag. Since this results in the value of
XBF_UNMAPPED causing a signed integer overflow, the result is
technically undefined behavior, which gcc-5 does not accept as an
integer constant.
This is based on a patch from Arnd Bergman <arnd@arndb.de>.
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_buf.c | 6 +++---
fs/xfs/xfs_buf.h | 42 +++++++++++++++++++++---------------------
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index e1afb9e503e1..bf4e60871068 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -406,7 +406,7 @@ xfs_buf_alloc_pages(
STATIC int
_xfs_buf_map_pages(
struct xfs_buf *bp,
- uint flags)
+ xfs_buf_flags_t flags)
{
ASSERT(bp->b_flags & _XBF_PAGES);
if (bp->b_page_count == 1) {
@@ -868,7 +868,7 @@ xfs_buf_read_uncached(
struct xfs_buftarg *target,
xfs_daddr_t daddr,
size_t numblks,
- int flags,
+ xfs_buf_flags_t flags,
struct xfs_buf **bpp,
const struct xfs_buf_ops *ops)
{
@@ -903,7 +903,7 @@ int
xfs_buf_get_uncached(
struct xfs_buftarg *target,
size_t numblks,
- int flags,
+ xfs_buf_flags_t flags,
struct xfs_buf **bpp)
{
int error;
diff --git a/fs/xfs/xfs_buf.h b/fs/xfs/xfs_buf.h
index edcb6254fa6a..1ee3056ff9cf 100644
--- a/fs/xfs/xfs_buf.h
+++ b/fs/xfs/xfs_buf.h
@@ -22,28 +22,28 @@ struct xfs_buf;
#define XFS_BUF_DADDR_NULL ((xfs_daddr_t) (-1LL))
-#define XBF_READ (1 << 0) /* buffer intended for reading from device */
-#define XBF_WRITE (1 << 1) /* buffer intended for writing to device */
-#define XBF_READ_AHEAD (1 << 2) /* asynchronous read-ahead */
-#define XBF_NO_IOACCT (1 << 3) /* bypass I/O accounting (non-LRU bufs) */
-#define XBF_ASYNC (1 << 4) /* initiator will not wait for completion */
-#define XBF_DONE (1 << 5) /* all pages in the buffer uptodate */
-#define XBF_STALE (1 << 6) /* buffer has been staled, do not find it */
-#define XBF_WRITE_FAIL (1 << 7) /* async writes have failed on this buffer */
+#define XBF_READ (1u << 0) /* buffer intended for reading from device */
+#define XBF_WRITE (1u << 1) /* buffer intended for writing to device */
+#define XBF_READ_AHEAD (1u << 2) /* asynchronous read-ahead */
+#define XBF_NO_IOACCT (1u << 3) /* bypass I/O accounting (non-LRU bufs) */
+#define XBF_ASYNC (1u << 4) /* initiator will not wait for completion */
+#define XBF_DONE (1u << 5) /* all pages in the buffer uptodate */
+#define XBF_STALE (1u << 6) /* buffer has been staled, do not find it */
+#define XBF_WRITE_FAIL (1u << 7) /* async writes have failed on this buffer */
/* buffer type flags for write callbacks */
-#define _XBF_INODES (1 << 16)/* inode buffer */
-#define _XBF_DQUOTS (1 << 17)/* dquot buffer */
-#define _XBF_LOGRECOVERY (1 << 18)/* log recovery buffer */
+#define _XBF_INODES (1u << 16)/* inode buffer */
+#define _XBF_DQUOTS (1u << 17)/* dquot buffer */
+#define _XBF_LOGRECOVERY (1u << 18)/* log recovery buffer */
/* flags used only internally */
-#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */
-#define _XBF_KMEM (1 << 21)/* backed by heap memory */
-#define _XBF_DELWRI_Q (1 << 22)/* buffer on a delwri queue */
+#define _XBF_PAGES (1u << 20)/* backed by refcounted pages */
+#define _XBF_KMEM (1u << 21)/* backed by heap memory */
+#define _XBF_DELWRI_Q (1u << 22)/* buffer on a delwri queue */
/* flags used only as arguments to access routines */
-#define XBF_TRYLOCK (1 << 30)/* lock requested, but do not wait */
-#define XBF_UNMAPPED (1 << 31)/* do not map the buffer */
+#define XBF_TRYLOCK (1u << 30)/* lock requested, but do not wait */
+#define XBF_UNMAPPED (1u << 31)/* do not map the buffer */
typedef unsigned int xfs_buf_flags_t;
@@ -58,7 +58,7 @@ typedef unsigned int xfs_buf_flags_t;
{ XBF_WRITE_FAIL, "WRITE_FAIL" }, \
{ _XBF_INODES, "INODES" }, \
{ _XBF_DQUOTS, "DQUOTS" }, \
- { _XBF_LOGRECOVERY, "LOG_RECOVERY" }, \
+ { _XBF_LOGRECOVERY, "LOG_RECOVERY" }, \
{ _XBF_PAGES, "PAGES" }, \
{ _XBF_KMEM, "KMEM" }, \
{ _XBF_DELWRI_Q, "DELWRI_Q" }, \
@@ -247,11 +247,11 @@ xfs_buf_readahead(
return xfs_buf_readahead_map(target, &map, 1, ops);
}
-int xfs_buf_get_uncached(struct xfs_buftarg *target, size_t numblks, int flags,
- struct xfs_buf **bpp);
+int xfs_buf_get_uncached(struct xfs_buftarg *target, size_t numblks,
+ xfs_buf_flags_t flags, struct xfs_buf **bpp);
int xfs_buf_read_uncached(struct xfs_buftarg *target, xfs_daddr_t daddr,
- size_t numblks, int flags, struct xfs_buf **bpp,
- const struct xfs_buf_ops *ops);
+ size_t numblks, xfs_buf_flags_t flags, struct xfs_buf **bpp,
+ const struct xfs_buf_ops *ops);
int _xfs_buf_read(struct xfs_buf *bp, xfs_buf_flags_t flags);
void xfs_buf_hold(struct xfs_buf *bp);
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 02/17] xfs: convert attr type flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
2022-04-11 0:31 ` [PATCH 01/17] xfs: convert buffer flags to unsigned Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 10:23 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 03/17] xfs: convert scrub " Dave Chinner
` (14 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_da_format.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_da_format.h b/fs/xfs/libxfs/xfs_da_format.h
index 5a49caa5c9df..4c6561baf9e9 100644
--- a/fs/xfs/libxfs/xfs_da_format.h
+++ b/fs/xfs/libxfs/xfs_da_format.h
@@ -688,10 +688,10 @@ struct xfs_attr3_leafblock {
#define XFS_ATTR_ROOT_BIT 1 /* limit access to trusted attrs */
#define XFS_ATTR_SECURE_BIT 2 /* limit access to secure attrs */
#define XFS_ATTR_INCOMPLETE_BIT 7 /* attr in middle of create/delete */
-#define XFS_ATTR_LOCAL (1 << XFS_ATTR_LOCAL_BIT)
-#define XFS_ATTR_ROOT (1 << XFS_ATTR_ROOT_BIT)
-#define XFS_ATTR_SECURE (1 << XFS_ATTR_SECURE_BIT)
-#define XFS_ATTR_INCOMPLETE (1 << XFS_ATTR_INCOMPLETE_BIT)
+#define XFS_ATTR_LOCAL (1u << XFS_ATTR_LOCAL_BIT)
+#define XFS_ATTR_ROOT (1u << XFS_ATTR_ROOT_BIT)
+#define XFS_ATTR_SECURE (1u << XFS_ATTR_SECURE_BIT)
+#define XFS_ATTR_INCOMPLETE (1u << XFS_ATTR_INCOMPLETE_BIT)
#define XFS_ATTR_NSP_ONDISK_MASK (XFS_ATTR_ROOT | XFS_ATTR_SECURE)
/*
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 03/17] xfs: convert scrub type flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
2022-04-11 0:31 ` [PATCH 01/17] xfs: convert buffer flags to unsigned Dave Chinner
2022-04-11 0:31 ` [PATCH 02/17] xfs: convert attr type " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 10:33 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 04/17] xfs: convert bmap extent " Dave Chinner
` (13 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
This touches xfs_fs.h so affects the user API, but the user API
fields are also unsigned so the flags should really be unsigned,
too.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_fs.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h
index 505533c43a92..52c9d8676fa3 100644
--- a/fs/xfs/libxfs/xfs_fs.h
+++ b/fs/xfs/libxfs/xfs_fs.h
@@ -699,34 +699,34 @@ struct xfs_scrub_metadata {
#define XFS_SCRUB_TYPE_NR 25
/* i: Repair this metadata. */
-#define XFS_SCRUB_IFLAG_REPAIR (1 << 0)
+#define XFS_SCRUB_IFLAG_REPAIR (1u << 0)
/* o: Metadata object needs repair. */
-#define XFS_SCRUB_OFLAG_CORRUPT (1 << 1)
+#define XFS_SCRUB_OFLAG_CORRUPT (1u << 1)
/*
* o: Metadata object could be optimized. It's not corrupt, but
* we could improve on it somehow.
*/
-#define XFS_SCRUB_OFLAG_PREEN (1 << 2)
+#define XFS_SCRUB_OFLAG_PREEN (1u << 2)
/* o: Cross-referencing failed. */
-#define XFS_SCRUB_OFLAG_XFAIL (1 << 3)
+#define XFS_SCRUB_OFLAG_XFAIL (1u << 3)
/* o: Metadata object disagrees with cross-referenced metadata. */
-#define XFS_SCRUB_OFLAG_XCORRUPT (1 << 4)
+#define XFS_SCRUB_OFLAG_XCORRUPT (1u << 4)
/* o: Scan was not complete. */
-#define XFS_SCRUB_OFLAG_INCOMPLETE (1 << 5)
+#define XFS_SCRUB_OFLAG_INCOMPLETE (1u << 5)
/* o: Metadata object looked funny but isn't corrupt. */
-#define XFS_SCRUB_OFLAG_WARNING (1 << 6)
+#define XFS_SCRUB_OFLAG_WARNING (1u << 6)
/*
* o: IFLAG_REPAIR was set but metadata object did not need fixing or
* optimization and has therefore not been altered.
*/
-#define XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED (1 << 7)
+#define XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED (1u << 7)
#define XFS_SCRUB_FLAGS_IN (XFS_SCRUB_IFLAG_REPAIR)
#define XFS_SCRUB_FLAGS_OUT (XFS_SCRUB_OFLAG_CORRUPT | \
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 04/17] xfs: convert bmap extent type flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (2 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 03/17] xfs: convert scrub " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 10:42 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 05/17] xfs: convert bmapi " Dave Chinner
` (12 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_bmap.c | 14 +++++++-------
fs/xfs/libxfs/xfs_bmap.h | 22 +++++++++++-----------
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
index 74198dd82b03..d53dfe8db8f2 100644
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -1399,7 +1399,7 @@ xfs_bmap_add_extent_delay_real(
xfs_bmbt_irec_t r[3]; /* neighbor extent entries */
/* left is 0, right is 1, prev is 2 */
int rval=0; /* return value (logging flags) */
- int state = xfs_bmap_fork_to_state(whichfork);
+ uint32_t state = xfs_bmap_fork_to_state(whichfork);
xfs_filblks_t da_new; /* new count del alloc blocks used */
xfs_filblks_t da_old; /* old count del alloc blocks used */
xfs_filblks_t temp=0; /* value for da_new calculations */
@@ -1950,7 +1950,7 @@ xfs_bmap_add_extent_unwritten_real(
xfs_bmbt_irec_t r[3]; /* neighbor extent entries */
/* left is 0, right is 1, prev is 2 */
int rval=0; /* return value (logging flags) */
- int state = xfs_bmap_fork_to_state(whichfork);
+ uint32_t state = xfs_bmap_fork_to_state(whichfork);
struct xfs_mount *mp = ip->i_mount;
struct xfs_bmbt_irec old;
@@ -2479,7 +2479,7 @@ xfs_bmap_add_extent_hole_delay(
xfs_filblks_t newlen=0; /* new indirect size */
xfs_filblks_t oldlen=0; /* old indirect size */
xfs_bmbt_irec_t right; /* right neighbor extent entry */
- int state = xfs_bmap_fork_to_state(whichfork);
+ uint32_t state = xfs_bmap_fork_to_state(whichfork);
xfs_filblks_t temp; /* temp for indirect calculations */
ifp = XFS_IFORK_PTR(ip, whichfork);
@@ -2626,7 +2626,7 @@ xfs_bmap_add_extent_hole_real(
xfs_bmbt_irec_t left; /* left neighbor extent entry */
xfs_bmbt_irec_t right; /* right neighbor extent entry */
int rval=0; /* return value (logging flags) */
- int state = xfs_bmap_fork_to_state(whichfork);
+ uint32_t state = xfs_bmap_fork_to_state(whichfork);
struct xfs_bmbt_irec old;
ASSERT(!isnullstartblock(new->br_startblock));
@@ -4801,7 +4801,7 @@ xfs_bmap_del_extent_delay(
int64_t da_old, da_new, da_diff = 0;
xfs_fileoff_t del_endoff, got_endoff;
xfs_filblks_t got_indlen, new_indlen, stolen;
- int state = xfs_bmap_fork_to_state(whichfork);
+ uint32_t state = xfs_bmap_fork_to_state(whichfork);
int error = 0;
bool isrt;
@@ -4926,7 +4926,7 @@ xfs_bmap_del_extent_cow(
struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, XFS_COW_FORK);
struct xfs_bmbt_irec new;
xfs_fileoff_t del_endoff, got_endoff;
- int state = BMAP_COWFORK;
+ uint32_t state = BMAP_COWFORK;
XFS_STATS_INC(mp, xs_del_exlist);
@@ -5015,7 +5015,7 @@ xfs_bmap_del_extent_real(
xfs_bmbt_irec_t new; /* new record to be inserted */
/* REFERENCED */
uint qfield; /* quota field to update */
- int state = xfs_bmap_fork_to_state(whichfork);
+ uint32_t state = xfs_bmap_fork_to_state(whichfork);
struct xfs_bmbt_irec old;
mp = ip->i_mount;
diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h
index 03d9aaf87413..29d38c3c2607 100644
--- a/fs/xfs/libxfs/xfs_bmap.h
+++ b/fs/xfs/libxfs/xfs_bmap.h
@@ -124,16 +124,16 @@ static inline int xfs_bmapi_whichfork(int bmapi_flags)
/*
* Flags for xfs_bmap_add_extent*.
*/
-#define BMAP_LEFT_CONTIG (1 << 0)
-#define BMAP_RIGHT_CONTIG (1 << 1)
-#define BMAP_LEFT_FILLING (1 << 2)
-#define BMAP_RIGHT_FILLING (1 << 3)
-#define BMAP_LEFT_DELAY (1 << 4)
-#define BMAP_RIGHT_DELAY (1 << 5)
-#define BMAP_LEFT_VALID (1 << 6)
-#define BMAP_RIGHT_VALID (1 << 7)
-#define BMAP_ATTRFORK (1 << 8)
-#define BMAP_COWFORK (1 << 9)
+#define BMAP_LEFT_CONTIG (1u << 0)
+#define BMAP_RIGHT_CONTIG (1u << 1)
+#define BMAP_LEFT_FILLING (1u << 2)
+#define BMAP_RIGHT_FILLING (1u << 3)
+#define BMAP_LEFT_DELAY (1u << 4)
+#define BMAP_RIGHT_DELAY (1u << 5)
+#define BMAP_LEFT_VALID (1u << 6)
+#define BMAP_RIGHT_VALID (1u << 7)
+#define BMAP_ATTRFORK (1u << 8)
+#define BMAP_COWFORK (1u << 9)
#define XFS_BMAP_EXT_FLAGS \
{ BMAP_LEFT_CONTIG, "LC" }, \
@@ -243,7 +243,7 @@ void xfs_bmap_map_extent(struct xfs_trans *tp, struct xfs_inode *ip,
void xfs_bmap_unmap_extent(struct xfs_trans *tp, struct xfs_inode *ip,
struct xfs_bmbt_irec *imap);
-static inline int xfs_bmap_fork_to_state(int whichfork)
+static inline uint32_t xfs_bmap_fork_to_state(int whichfork)
{
switch (whichfork) {
case XFS_ATTR_FORK:
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 05/17] xfs: convert bmapi flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (3 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 04/17] xfs: convert bmap extent " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 12:53 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 06/17] xfs: convert AGF log " Dave Chinner
` (11 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_bmap.c | 22 +++++++++++-----------
fs/xfs/libxfs/xfs_bmap.h | 36 ++++++++++++++++++------------------
2 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
index d53dfe8db8f2..ad938e6e23aa 100644
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -485,7 +485,7 @@ STATIC void
xfs_bmap_validate_ret(
xfs_fileoff_t bno,
xfs_filblks_t len,
- int flags,
+ uint32_t flags,
xfs_bmbt_irec_t *mval,
int nmap,
int ret_nmap)
@@ -2616,7 +2616,7 @@ xfs_bmap_add_extent_hole_real(
struct xfs_btree_cur **curp,
struct xfs_bmbt_irec *new,
int *logflagsp,
- int flags)
+ uint32_t flags)
{
struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, whichfork);
struct xfs_mount *mp = ip->i_mount;
@@ -3766,7 +3766,7 @@ xfs_bmapi_trim_map(
xfs_fileoff_t obno,
xfs_fileoff_t end,
int n,
- int flags)
+ uint32_t flags)
{
if ((flags & XFS_BMAPI_ENTIRE) ||
got->br_startoff + got->br_blockcount <= obno) {
@@ -3811,7 +3811,7 @@ xfs_bmapi_update_map(
xfs_fileoff_t obno,
xfs_fileoff_t end,
int *n,
- int flags)
+ uint32_t flags)
{
xfs_bmbt_irec_t *mval = *map;
@@ -3864,7 +3864,7 @@ xfs_bmapi_read(
xfs_filblks_t len,
struct xfs_bmbt_irec *mval,
int *nmap,
- int flags)
+ uint32_t flags)
{
struct xfs_mount *mp = ip->i_mount;
int whichfork = xfs_bmapi_whichfork(flags);
@@ -4184,7 +4184,7 @@ xfs_bmapi_convert_unwritten(
struct xfs_bmalloca *bma,
struct xfs_bmbt_irec *mval,
xfs_filblks_t len,
- int flags)
+ uint32_t flags)
{
int whichfork = xfs_bmapi_whichfork(flags);
struct xfs_ifork *ifp = XFS_IFORK_PTR(bma->ip, whichfork);
@@ -4312,7 +4312,7 @@ xfs_bmapi_write(
struct xfs_inode *ip, /* incore inode */
xfs_fileoff_t bno, /* starting file offs. mapped */
xfs_filblks_t len, /* length to map in file */
- int flags, /* XFS_BMAPI_... */
+ uint32_t flags, /* XFS_BMAPI_... */
xfs_extlen_t total, /* total blocks needed */
struct xfs_bmbt_irec *mval, /* output: map values */
int *nmap) /* i/o: mval size/count */
@@ -4629,7 +4629,7 @@ xfs_bmapi_remap(
xfs_fileoff_t bno,
xfs_filblks_t len,
xfs_fsblock_t startblock,
- int flags)
+ uint32_t flags)
{
struct xfs_mount *mp = ip->i_mount;
struct xfs_ifork *ifp;
@@ -4999,7 +4999,7 @@ xfs_bmap_del_extent_real(
xfs_bmbt_irec_t *del, /* data to remove from extents */
int *logflagsp, /* inode logging flags */
int whichfork, /* data or attr fork */
- int bflags) /* bmapi flags */
+ uint32_t bflags) /* bmapi flags */
{
xfs_fsblock_t del_endblock=0; /* first block past del */
xfs_fileoff_t del_endoff; /* first offset past del */
@@ -5281,7 +5281,7 @@ __xfs_bunmapi(
struct xfs_inode *ip, /* incore inode */
xfs_fileoff_t start, /* first file offset deleted */
xfs_filblks_t *rlen, /* i/o: amount remaining */
- int flags, /* misc flags */
+ uint32_t flags, /* misc flags */
xfs_extnum_t nexts) /* number of extents max */
{
struct xfs_btree_cur *cur; /* bmap btree cursor */
@@ -5609,7 +5609,7 @@ xfs_bunmapi(
struct xfs_inode *ip,
xfs_fileoff_t bno,
xfs_filblks_t len,
- int flags,
+ uint32_t flags,
xfs_extnum_t nexts,
int *done)
{
diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h
index 29d38c3c2607..16db95b11589 100644
--- a/fs/xfs/libxfs/xfs_bmap.h
+++ b/fs/xfs/libxfs/xfs_bmap.h
@@ -39,7 +39,7 @@ struct xfs_bmalloca {
bool aeof; /* allocated space at eof */
bool conv; /* overwriting unwritten extents */
int datatype;/* data type being allocated */
- int flags;
+ uint32_t flags;
};
#define XFS_BMAP_MAX_NMAP 4
@@ -47,17 +47,17 @@ struct xfs_bmalloca {
/*
* Flags for xfs_bmapi_*
*/
-#define XFS_BMAPI_ENTIRE 0x001 /* return entire extent, not trimmed */
-#define XFS_BMAPI_METADATA 0x002 /* mapping metadata not user data */
-#define XFS_BMAPI_ATTRFORK 0x004 /* use attribute fork not data */
-#define XFS_BMAPI_PREALLOC 0x008 /* preallocation op: unwritten space */
-#define XFS_BMAPI_CONTIG 0x020 /* must allocate only one extent */
+#define XFS_BMAPI_ENTIRE (1u << 0) /* return entire extent untrimmed */
+#define XFS_BMAPI_METADATA (1u << 1) /* mapping metadata not user data */
+#define XFS_BMAPI_ATTRFORK (1u << 2) /* use attribute fork not data */
+#define XFS_BMAPI_PREALLOC (1u << 3) /* preallocating unwritten space */
+#define XFS_BMAPI_CONTIG (1u << 4) /* must allocate only one extent */
/*
* unwritten extent conversion - this needs write cache flushing and no additional
* allocation alignments. When specified with XFS_BMAPI_PREALLOC it converts
* from written to unwritten, otherwise convert from unwritten to written.
*/
-#define XFS_BMAPI_CONVERT 0x040
+#define XFS_BMAPI_CONVERT (1u << 5)
/*
* allocate zeroed extents - this requires all newly allocated user data extents
@@ -65,7 +65,7 @@ struct xfs_bmalloca {
* Use in conjunction with XFS_BMAPI_CONVERT to convert unwritten extents found
* during the allocation range to zeroed written extents.
*/
-#define XFS_BMAPI_ZERO 0x080
+#define XFS_BMAPI_ZERO (1u << 6)
/*
* Map the inode offset to the block given in ap->firstblock. Primarily
@@ -75,16 +75,16 @@ struct xfs_bmalloca {
* For bunmapi, this flag unmaps the range without adjusting quota, reducing
* refcount, or freeing the blocks.
*/
-#define XFS_BMAPI_REMAP 0x100
+#define XFS_BMAPI_REMAP (1u << 7)
/* Map something in the CoW fork. */
-#define XFS_BMAPI_COWFORK 0x200
+#define XFS_BMAPI_COWFORK (1u << 8)
/* Skip online discard of freed extents */
-#define XFS_BMAPI_NODISCARD 0x1000
+#define XFS_BMAPI_NODISCARD (1u << 9)
/* Do not update the rmap btree. Used for reconstructing bmbt from rmapbt. */
-#define XFS_BMAPI_NORMAP 0x2000
+#define XFS_BMAPI_NORMAP (1u << 10)
#define XFS_BMAPI_FLAGS \
{ XFS_BMAPI_ENTIRE, "ENTIRE" }, \
@@ -106,7 +106,7 @@ static inline int xfs_bmapi_aflag(int w)
(w == XFS_COW_FORK ? XFS_BMAPI_COWFORK : 0));
}
-static inline int xfs_bmapi_whichfork(int bmapi_flags)
+static inline int xfs_bmapi_whichfork(uint32_t bmapi_flags)
{
if (bmapi_flags & XFS_BMAPI_COWFORK)
return XFS_COW_FORK;
@@ -183,15 +183,15 @@ int xfs_bmap_last_offset(struct xfs_inode *ip, xfs_fileoff_t *unused,
int whichfork);
int xfs_bmapi_read(struct xfs_inode *ip, xfs_fileoff_t bno,
xfs_filblks_t len, struct xfs_bmbt_irec *mval,
- int *nmap, int flags);
+ int *nmap, uint32_t flags);
int xfs_bmapi_write(struct xfs_trans *tp, struct xfs_inode *ip,
- xfs_fileoff_t bno, xfs_filblks_t len, int flags,
+ xfs_fileoff_t bno, xfs_filblks_t len, uint32_t flags,
xfs_extlen_t total, struct xfs_bmbt_irec *mval, int *nmap);
int __xfs_bunmapi(struct xfs_trans *tp, struct xfs_inode *ip,
- xfs_fileoff_t bno, xfs_filblks_t *rlen, int flags,
+ xfs_fileoff_t bno, xfs_filblks_t *rlen, uint32_t flags,
xfs_extnum_t nexts);
int xfs_bunmapi(struct xfs_trans *tp, struct xfs_inode *ip,
- xfs_fileoff_t bno, xfs_filblks_t len, int flags,
+ xfs_fileoff_t bno, xfs_filblks_t len, uint32_t flags,
xfs_extnum_t nexts, int *done);
int xfs_bmap_del_extent_delay(struct xfs_inode *ip, int whichfork,
struct xfs_iext_cursor *cur, struct xfs_bmbt_irec *got,
@@ -260,7 +260,7 @@ xfs_failaddr_t xfs_bmap_validate_extent(struct xfs_inode *ip, int whichfork,
int xfs_bmapi_remap(struct xfs_trans *tp, struct xfs_inode *ip,
xfs_fileoff_t bno, xfs_filblks_t len, xfs_fsblock_t startblock,
- int flags);
+ uint32_t flags);
extern struct kmem_cache *xfs_bmap_intent_cache;
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 06/17] xfs: convert AGF log flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (4 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 05/17] xfs: convert bmapi " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 13:27 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 07/17] xfs: convert AGI " Dave Chinner
` (10 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_alloc.c | 10 +++++-----
fs/xfs/libxfs/xfs_alloc.h | 2 +-
fs/xfs/libxfs/xfs_format.h | 38 +++++++++++++++++++-------------------
3 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
index b52ed339727f..1ff3fa67d4c9 100644
--- a/fs/xfs/libxfs/xfs_alloc.c
+++ b/fs/xfs/libxfs/xfs_alloc.c
@@ -2777,7 +2777,7 @@ xfs_alloc_get_freelist(
xfs_agblock_t bno;
__be32 *agfl_bno;
int error;
- int logflags;
+ uint32_t logflags;
struct xfs_mount *mp = tp->t_mountp;
struct xfs_perag *pag;
@@ -2830,9 +2830,9 @@ xfs_alloc_get_freelist(
*/
void
xfs_alloc_log_agf(
- xfs_trans_t *tp, /* transaction pointer */
- struct xfs_buf *bp, /* buffer for a.g. freelist header */
- int fields) /* mask of fields to be logged (XFS_AGF_...) */
+ struct xfs_trans *tp,
+ struct xfs_buf *bp,
+ uint32_t fields)
{
int first; /* first byte offset */
int last; /* last byte offset */
@@ -2902,7 +2902,7 @@ xfs_alloc_put_freelist(
struct xfs_perag *pag;
__be32 *blockp;
int error;
- int logflags;
+ uint32_t logflags;
__be32 *agfl_bno;
int startoff;
diff --git a/fs/xfs/libxfs/xfs_alloc.h b/fs/xfs/libxfs/xfs_alloc.h
index d4c057b764f9..84ca09b2223f 100644
--- a/fs/xfs/libxfs/xfs_alloc.h
+++ b/fs/xfs/libxfs/xfs_alloc.h
@@ -121,7 +121,7 @@ void
xfs_alloc_log_agf(
struct xfs_trans *tp, /* transaction pointer */
struct xfs_buf *bp, /* buffer for a.g. freelist header */
- int fields);/* mask of fields to be logged (XFS_AGF_...) */
+ uint32_t fields);/* mask of fields to be logged (XFS_AGF_...) */
/*
* Interface for inode allocation to force the pag data to be initialized.
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
index d665c04e69dd..65e24847841e 100644
--- a/fs/xfs/libxfs/xfs_format.h
+++ b/fs/xfs/libxfs/xfs_format.h
@@ -525,26 +525,26 @@ typedef struct xfs_agf {
#define XFS_AGF_CRC_OFF offsetof(struct xfs_agf, agf_crc)
-#define XFS_AGF_MAGICNUM 0x00000001
-#define XFS_AGF_VERSIONNUM 0x00000002
-#define XFS_AGF_SEQNO 0x00000004
-#define XFS_AGF_LENGTH 0x00000008
-#define XFS_AGF_ROOTS 0x00000010
-#define XFS_AGF_LEVELS 0x00000020
-#define XFS_AGF_FLFIRST 0x00000040
-#define XFS_AGF_FLLAST 0x00000080
-#define XFS_AGF_FLCOUNT 0x00000100
-#define XFS_AGF_FREEBLKS 0x00000200
-#define XFS_AGF_LONGEST 0x00000400
-#define XFS_AGF_BTREEBLKS 0x00000800
-#define XFS_AGF_UUID 0x00001000
-#define XFS_AGF_RMAP_BLOCKS 0x00002000
-#define XFS_AGF_REFCOUNT_BLOCKS 0x00004000
-#define XFS_AGF_REFCOUNT_ROOT 0x00008000
-#define XFS_AGF_REFCOUNT_LEVEL 0x00010000
-#define XFS_AGF_SPARE64 0x00020000
+#define XFS_AGF_MAGICNUM (1u << 0)
+#define XFS_AGF_VERSIONNUM (1u << 1)
+#define XFS_AGF_SEQNO (1u << 2)
+#define XFS_AGF_LENGTH (1u << 3)
+#define XFS_AGF_ROOTS (1u << 4)
+#define XFS_AGF_LEVELS (1u << 5)
+#define XFS_AGF_FLFIRST (1u << 6)
+#define XFS_AGF_FLLAST (1u << 7)
+#define XFS_AGF_FLCOUNT (1u << 8)
+#define XFS_AGF_FREEBLKS (1u << 9)
+#define XFS_AGF_LONGEST (1u << 10)
+#define XFS_AGF_BTREEBLKS (1u << 11)
+#define XFS_AGF_UUID (1u << 12)
+#define XFS_AGF_RMAP_BLOCKS (1u << 13)
+#define XFS_AGF_REFCOUNT_BLOCKS (1u << 14)
+#define XFS_AGF_REFCOUNT_ROOT (1u << 15)
+#define XFS_AGF_REFCOUNT_LEVEL (1u << 16)
+#define XFS_AGF_SPARE64 (1u << 17)
#define XFS_AGF_NUM_BITS 18
-#define XFS_AGF_ALL_BITS ((1 << XFS_AGF_NUM_BITS) - 1)
+#define XFS_AGF_ALL_BITS ((1u << XFS_AGF_NUM_BITS) - 1)
#define XFS_AGF_FLAGS \
{ XFS_AGF_MAGICNUM, "MAGICNUM" }, \
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 07/17] xfs: convert AGI log flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (5 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 06/17] xfs: convert AGF log " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 13:49 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 08/17] xfs: convert btree buffer " Dave Chinner
` (9 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_format.h | 30 +++++++++++++++---------------
fs/xfs/libxfs/xfs_ialloc.c | 6 +++---
fs/xfs/libxfs/xfs_ialloc.h | 2 +-
3 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
index 65e24847841e..0d6fa199a896 100644
--- a/fs/xfs/libxfs/xfs_format.h
+++ b/fs/xfs/libxfs/xfs_format.h
@@ -619,22 +619,22 @@ typedef struct xfs_agi {
#define XFS_AGI_CRC_OFF offsetof(struct xfs_agi, agi_crc)
-#define XFS_AGI_MAGICNUM (1 << 0)
-#define XFS_AGI_VERSIONNUM (1 << 1)
-#define XFS_AGI_SEQNO (1 << 2)
-#define XFS_AGI_LENGTH (1 << 3)
-#define XFS_AGI_COUNT (1 << 4)
-#define XFS_AGI_ROOT (1 << 5)
-#define XFS_AGI_LEVEL (1 << 6)
-#define XFS_AGI_FREECOUNT (1 << 7)
-#define XFS_AGI_NEWINO (1 << 8)
-#define XFS_AGI_DIRINO (1 << 9)
-#define XFS_AGI_UNLINKED (1 << 10)
+#define XFS_AGI_MAGICNUM (1u << 0)
+#define XFS_AGI_VERSIONNUM (1u << 1)
+#define XFS_AGI_SEQNO (1u << 2)
+#define XFS_AGI_LENGTH (1u << 3)
+#define XFS_AGI_COUNT (1u << 4)
+#define XFS_AGI_ROOT (1u << 5)
+#define XFS_AGI_LEVEL (1u << 6)
+#define XFS_AGI_FREECOUNT (1u << 7)
+#define XFS_AGI_NEWINO (1u << 8)
+#define XFS_AGI_DIRINO (1u << 9)
+#define XFS_AGI_UNLINKED (1u << 10)
#define XFS_AGI_NUM_BITS_R1 11 /* end of the 1st agi logging region */
-#define XFS_AGI_ALL_BITS_R1 ((1 << XFS_AGI_NUM_BITS_R1) - 1)
-#define XFS_AGI_FREE_ROOT (1 << 11)
-#define XFS_AGI_FREE_LEVEL (1 << 12)
-#define XFS_AGI_IBLOCKS (1 << 13) /* both inobt/finobt block counters */
+#define XFS_AGI_ALL_BITS_R1 ((1u << XFS_AGI_NUM_BITS_R1) - 1)
+#define XFS_AGI_FREE_ROOT (1u << 11)
+#define XFS_AGI_FREE_LEVEL (1u << 12)
+#define XFS_AGI_IBLOCKS (1u << 13) /* both inobt/finobt block counters */
#define XFS_AGI_NUM_BITS_R2 14
/* disk block (xfs_daddr_t) in the AG */
diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c
index b418fe0c0679..54c2be6a2972 100644
--- a/fs/xfs/libxfs/xfs_ialloc.c
+++ b/fs/xfs/libxfs/xfs_ialloc.c
@@ -2414,9 +2414,9 @@ xfs_imap(
*/
void
xfs_ialloc_log_agi(
- xfs_trans_t *tp, /* transaction pointer */
- struct xfs_buf *bp, /* allocation group header buffer */
- int fields) /* bitmask of fields to log */
+ struct xfs_trans *tp,
+ struct xfs_buf *bp,
+ uint32_t fields)
{
int first; /* first byte number */
int last; /* last byte number */
diff --git a/fs/xfs/libxfs/xfs_ialloc.h b/fs/xfs/libxfs/xfs_ialloc.h
index 8b5c2b709022..a7705b6a1fd3 100644
--- a/fs/xfs/libxfs/xfs_ialloc.h
+++ b/fs/xfs/libxfs/xfs_ialloc.h
@@ -60,7 +60,7 @@ void
xfs_ialloc_log_agi(
struct xfs_trans *tp, /* transaction pointer */
struct xfs_buf *bp, /* allocation group header buffer */
- int fields); /* bitmask of fields to log */
+ uint32_t fields); /* bitmask of fields to log */
/*
* Read in the allocation group header (inode allocation section)
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 08/17] xfs: convert btree buffer log flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (6 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 07/17] xfs: convert AGI " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-11 14:03 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 09/17] xfs: convert buffer log item " Dave Chinner
` (8 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
We also pass the fields to log to xfs_btree_offsets() as a uint32_t
all cases now. I have no idea why we made that parameter a int64_t
in the first place, but while we are fixing this up change it to
a uint32_t field, too.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_btree.c | 10 +++++-----
fs/xfs/libxfs/xfs_btree.h | 26 +++++++++++++-------------
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c
index c1500b238520..a8c79e760d8a 100644
--- a/fs/xfs/libxfs/xfs_btree.c
+++ b/fs/xfs/libxfs/xfs_btree.c
@@ -751,20 +751,20 @@ xfs_btree_lastrec(
*/
void
xfs_btree_offsets(
- int64_t fields, /* bitmask of fields */
+ uint32_t fields, /* bitmask of fields */
const short *offsets, /* table of field offsets */
int nbits, /* number of bits to inspect */
int *first, /* output: first byte offset */
int *last) /* output: last byte offset */
{
int i; /* current bit number */
- int64_t imask; /* mask for current bit number */
+ uint32_t imask; /* mask for current bit number */
ASSERT(fields != 0);
/*
* Find the lowest bit, so the first byte offset.
*/
- for (i = 0, imask = 1LL; ; i++, imask <<= 1) {
+ for (i = 0, imask = 1u; ; i++, imask <<= 1) {
if (imask & fields) {
*first = offsets[i];
break;
@@ -773,7 +773,7 @@ xfs_btree_offsets(
/*
* Find the highest bit, so the last byte offset.
*/
- for (i = nbits - 1, imask = 1LL << i; ; i--, imask >>= 1) {
+ for (i = nbits - 1, imask = 1u << i; ; i--, imask >>= 1) {
if (imask & fields) {
*last = offsets[i + 1] - 1;
break;
@@ -1456,7 +1456,7 @@ void
xfs_btree_log_block(
struct xfs_btree_cur *cur, /* btree cursor */
struct xfs_buf *bp, /* buffer containing btree block */
- int fields) /* mask of fields: XFS_BB_... */
+ uint32_t fields) /* mask of fields: XFS_BB_... */
{
int first; /* first byte offset logged */
int last; /* last byte offset logged */
diff --git a/fs/xfs/libxfs/xfs_btree.h b/fs/xfs/libxfs/xfs_btree.h
index 22d9f411fde6..eef27858a013 100644
--- a/fs/xfs/libxfs/xfs_btree.h
+++ b/fs/xfs/libxfs/xfs_btree.h
@@ -68,19 +68,19 @@ uint32_t xfs_btree_magic(int crc, xfs_btnum_t btnum);
/*
* For logging record fields.
*/
-#define XFS_BB_MAGIC (1 << 0)
-#define XFS_BB_LEVEL (1 << 1)
-#define XFS_BB_NUMRECS (1 << 2)
-#define XFS_BB_LEFTSIB (1 << 3)
-#define XFS_BB_RIGHTSIB (1 << 4)
-#define XFS_BB_BLKNO (1 << 5)
-#define XFS_BB_LSN (1 << 6)
-#define XFS_BB_UUID (1 << 7)
-#define XFS_BB_OWNER (1 << 8)
+#define XFS_BB_MAGIC (1u << 0)
+#define XFS_BB_LEVEL (1u << 1)
+#define XFS_BB_NUMRECS (1u << 2)
+#define XFS_BB_LEFTSIB (1u << 3)
+#define XFS_BB_RIGHTSIB (1u << 4)
+#define XFS_BB_BLKNO (1u << 5)
+#define XFS_BB_LSN (1u << 6)
+#define XFS_BB_UUID (1u << 7)
+#define XFS_BB_OWNER (1u << 8)
#define XFS_BB_NUM_BITS 5
-#define XFS_BB_ALL_BITS ((1 << XFS_BB_NUM_BITS) - 1)
+#define XFS_BB_ALL_BITS ((1u << XFS_BB_NUM_BITS) - 1)
#define XFS_BB_NUM_BITS_CRC 9
-#define XFS_BB_ALL_BITS_CRC ((1 << XFS_BB_NUM_BITS_CRC) - 1)
+#define XFS_BB_ALL_BITS_CRC ((1u << XFS_BB_NUM_BITS_CRC) - 1)
/*
* Generic stats interface
@@ -345,7 +345,7 @@ xfs_btree_dup_cursor(
*/
void
xfs_btree_offsets(
- int64_t fields, /* bitmask of fields */
+ uint32_t fields, /* bitmask of fields */
const short *offsets,/* table of field offsets */
int nbits, /* number of bits to inspect */
int *first, /* output: first byte offset */
@@ -435,7 +435,7 @@ bool xfs_btree_sblock_verify_crc(struct xfs_buf *);
/*
* Internal btree helpers also used by xfs_bmap.c.
*/
-void xfs_btree_log_block(struct xfs_btree_cur *, struct xfs_buf *, int);
+void xfs_btree_log_block(struct xfs_btree_cur *, struct xfs_buf *, uint32_t);
void xfs_btree_log_recs(struct xfs_btree_cur *, struct xfs_buf *, int, int);
/*
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 09/17] xfs: convert buffer log item flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (7 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 08/17] xfs: convert btree buffer " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:25 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 10/17] xfs: convert da btree operations " Dave Chinner
` (7 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_buf_item.h | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/fs/xfs/xfs_buf_item.h b/fs/xfs/xfs_buf_item.h
index e11e9ef2338f..4d8a6aece995 100644
--- a/fs/xfs/xfs_buf_item.h
+++ b/fs/xfs/xfs_buf_item.h
@@ -8,15 +8,18 @@
/* kernel only definitions */
+struct xfs_buf;
+struct xfs_mount;
+
/* buf log item flags */
-#define XFS_BLI_HOLD 0x01
-#define XFS_BLI_DIRTY 0x02
-#define XFS_BLI_STALE 0x04
-#define XFS_BLI_LOGGED 0x08
-#define XFS_BLI_INODE_ALLOC_BUF 0x10
-#define XFS_BLI_STALE_INODE 0x20
-#define XFS_BLI_INODE_BUF 0x40
-#define XFS_BLI_ORDERED 0x80
+#define XFS_BLI_HOLD (1u << 0)
+#define XFS_BLI_DIRTY (1u << 1)
+#define XFS_BLI_STALE (1u << 2)
+#define XFS_BLI_LOGGED (1u << 3)
+#define XFS_BLI_INODE_ALLOC_BUF (1u << 4)
+#define XFS_BLI_STALE_INODE (1u << 5)
+#define XFS_BLI_INODE_BUF (1u << 6)
+#define XFS_BLI_ORDERED (1u << 7)
#define XFS_BLI_FLAGS \
{ XFS_BLI_HOLD, "HOLD" }, \
@@ -28,11 +31,6 @@
{ XFS_BLI_INODE_BUF, "INODE_BUF" }, \
{ XFS_BLI_ORDERED, "ORDERED" }
-
-struct xfs_buf;
-struct xfs_mount;
-struct xfs_buf_log_item;
-
/*
* This is the in core log item structure used to track information
* needed to log buffers. It tracks how many times the lock has been
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 10/17] xfs: convert da btree operations flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (8 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 09/17] xfs: convert buffer log item " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:25 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 11/17] xfs: convert dquot " Dave Chinner
` (6 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_da_btree.h | 16 ++++++++--------
fs/xfs/xfs_trace.h | 8 ++++----
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_da_btree.h b/fs/xfs/libxfs/xfs_da_btree.h
index 0faf7d9ac241..7b0f986e5cb5 100644
--- a/fs/xfs/libxfs/xfs_da_btree.h
+++ b/fs/xfs/libxfs/xfs_da_btree.h
@@ -76,19 +76,19 @@ typedef struct xfs_da_args {
xfs_dablk_t rmtblkno2; /* remote attr value starting blkno */
int rmtblkcnt2; /* remote attr value block count */
int rmtvaluelen2; /* remote attr value length in bytes */
- int op_flags; /* operation flags */
+ uint32_t op_flags; /* operation flags */
enum xfs_dacmp cmpresult; /* name compare result for lookups */
} xfs_da_args_t;
/*
* Operation flags:
*/
-#define XFS_DA_OP_JUSTCHECK 0x0001 /* check for ok with no space */
-#define XFS_DA_OP_RENAME 0x0002 /* this is an atomic rename op */
-#define XFS_DA_OP_ADDNAME 0x0004 /* this is an add operation */
-#define XFS_DA_OP_OKNOENT 0x0008 /* lookup/add op, ENOENT ok, else die */
-#define XFS_DA_OP_CILOOKUP 0x0010 /* lookup to return CI name if found */
-#define XFS_DA_OP_NOTIME 0x0020 /* don't update inode timestamps */
+#define XFS_DA_OP_JUSTCHECK (1u << 0) /* check for ok with no space */
+#define XFS_DA_OP_RENAME (1u << 1) /* this is an atomic rename op */
+#define XFS_DA_OP_ADDNAME (1u << 2) /* this is an add operation */
+#define XFS_DA_OP_OKNOENT (1u << 3) /* lookup op, ENOENT ok, else die */
+#define XFS_DA_OP_CILOOKUP (1u << 4) /* lookup returns CI name if found */
+#define XFS_DA_OP_NOTIME (1u << 5) /* don't update inode timestamps */
#define XFS_DA_OP_FLAGS \
{ XFS_DA_OP_JUSTCHECK, "JUSTCHECK" }, \
@@ -197,7 +197,7 @@ int xfs_da3_node_read_mapped(struct xfs_trans *tp, struct xfs_inode *dp,
* Utility routines.
*/
-#define XFS_DABUF_MAP_HOLE_OK (1 << 0)
+#define XFS_DABUF_MAP_HOLE_OK (1u << 0)
int xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno);
int xfs_da_grow_inode_int(struct xfs_da_args *args, xfs_fileoff_t *bno,
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index b141ef78c755..989ecda904db 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -1924,7 +1924,7 @@ DECLARE_EVENT_CLASS(xfs_da_class,
__field(int, namelen)
__field(xfs_dahash_t, hashval)
__field(xfs_ino_t, inumber)
- __field(int, op_flags)
+ __field(uint32_t, op_flags)
),
TP_fast_assign(
__entry->dev = VFS_I(args->dp)->i_sb->s_dev;
@@ -1990,7 +1990,7 @@ DECLARE_EVENT_CLASS(xfs_attr_class,
__field(xfs_dahash_t, hashval)
__field(unsigned int, attr_filter)
__field(unsigned int, attr_flags)
- __field(int, op_flags)
+ __field(uint32_t, op_flags)
),
TP_fast_assign(
__entry->dev = VFS_I(args->dp)->i_sb->s_dev;
@@ -2097,7 +2097,7 @@ DECLARE_EVENT_CLASS(xfs_dir2_space_class,
TP_STRUCT__entry(
__field(dev_t, dev)
__field(xfs_ino_t, ino)
- __field(int, op_flags)
+ __field(uint32_t, op_flags)
__field(int, idx)
),
TP_fast_assign(
@@ -2128,7 +2128,7 @@ TRACE_EVENT(xfs_dir2_leafn_moveents,
TP_STRUCT__entry(
__field(dev_t, dev)
__field(xfs_ino_t, ino)
- __field(int, op_flags)
+ __field(uint32_t, op_flags)
__field(int, src_idx)
__field(int, dst_idx)
__field(int, count)
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 11/17] xfs: convert dquot flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (9 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 10/17] xfs: convert da btree operations " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 12/17] xfs: convert log item tracepoint " Dave Chinner
` (5 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_format.h | 8 ++++----
fs/xfs/libxfs/xfs_quota_defs.h | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
index 0d6fa199a896..f524736d811e 100644
--- a/fs/xfs/libxfs/xfs_format.h
+++ b/fs/xfs/libxfs/xfs_format.h
@@ -1085,10 +1085,10 @@ static inline bool xfs_dinode_has_bigtime(const struct xfs_dinode *dip)
#define XFS_DQUOT_MAGIC 0x4451 /* 'DQ' */
#define XFS_DQUOT_VERSION (uint8_t)0x01 /* latest version number */
-#define XFS_DQTYPE_USER 0x01 /* user dquot record */
-#define XFS_DQTYPE_PROJ 0x02 /* project dquot record */
-#define XFS_DQTYPE_GROUP 0x04 /* group dquot record */
-#define XFS_DQTYPE_BIGTIME 0x80 /* large expiry timestamps */
+#define XFS_DQTYPE_USER (1u << 0) /* user dquot record */
+#define XFS_DQTYPE_PROJ (1u << 1) /* project dquot record */
+#define XFS_DQTYPE_GROUP (1u << 2) /* group dquot record */
+#define XFS_DQTYPE_BIGTIME (1u << 7) /* large expiry timestamps */
/* bitmask to determine if this is a user/group/project dquot */
#define XFS_DQTYPE_REC_MASK (XFS_DQTYPE_USER | \
diff --git a/fs/xfs/libxfs/xfs_quota_defs.h b/fs/xfs/libxfs/xfs_quota_defs.h
index a02c5062f9b2..fdfe3cc6f15c 100644
--- a/fs/xfs/libxfs/xfs_quota_defs.h
+++ b/fs/xfs/libxfs/xfs_quota_defs.h
@@ -29,8 +29,8 @@ typedef uint8_t xfs_dqtype_t;
/*
* flags for q_flags field in the dquot.
*/
-#define XFS_DQFLAG_DIRTY (1 << 0) /* dquot is dirty */
-#define XFS_DQFLAG_FREEING (1 << 1) /* dquot is being torn down */
+#define XFS_DQFLAG_DIRTY (1u << 0) /* dquot is dirty */
+#define XFS_DQFLAG_FREEING (1u << 1) /* dquot is being torn down */
#define XFS_DQFLAG_STRINGS \
{ XFS_DQFLAG_DIRTY, "DIRTY" }, \
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 12/17] xfs: convert log item tracepoint flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (10 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 11/17] xfs: convert dquot " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 13/17] xfs: convert inode lock " Dave Chinner
` (4 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_trans.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index de177842b951..569b68fc6912 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
@@ -58,10 +58,10 @@ struct xfs_log_item {
#define XFS_LI_DIRTY 3 /* log item dirty in transaction */
#define XFS_LI_FLAGS \
- { (1 << XFS_LI_IN_AIL), "IN_AIL" }, \
- { (1 << XFS_LI_ABORTED), "ABORTED" }, \
- { (1 << XFS_LI_FAILED), "FAILED" }, \
- { (1 << XFS_LI_DIRTY), "DIRTY" }
+ { (1u << XFS_LI_IN_AIL), "IN_AIL" }, \
+ { (1u << XFS_LI_ABORTED), "ABORTED" }, \
+ { (1u << XFS_LI_FAILED), "FAILED" }, \
+ { (1u << XFS_LI_DIRTY), "DIRTY" }
struct xfs_item_ops {
unsigned flags;
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 13/17] xfs: convert inode lock flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (11 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 12/17] xfs: convert log item tracepoint " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 14/17] xfs: convert ptag " Dave Chinner
` (3 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_file.c | 12 ++++++------
fs/xfs/xfs_inode.c | 21 ++++++++++++---------
fs/xfs/xfs_inode.h | 16 ++++++++--------
3 files changed, 26 insertions(+), 23 deletions(-)
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 5bddb1e9e0b3..f3e878408747 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -310,7 +310,7 @@ STATIC ssize_t
xfs_file_write_checks(
struct kiocb *iocb,
struct iov_iter *from,
- int *iolock)
+ unsigned int *iolock)
{
struct file *file = iocb->ki_filp;
struct inode *inode = file->f_mapping->host;
@@ -513,7 +513,7 @@ xfs_file_dio_write_aligned(
struct kiocb *iocb,
struct iov_iter *from)
{
- int iolock = XFS_IOLOCK_SHARED;
+ unsigned int iolock = XFS_IOLOCK_SHARED;
ssize_t ret;
ret = xfs_ilock_iocb(iocb, iolock);
@@ -566,7 +566,7 @@ xfs_file_dio_write_unaligned(
{
size_t isize = i_size_read(VFS_I(ip));
size_t count = iov_iter_count(from);
- int iolock = XFS_IOLOCK_SHARED;
+ unsigned int iolock = XFS_IOLOCK_SHARED;
unsigned int flags = IOMAP_DIO_OVERWRITE_ONLY;
ssize_t ret;
@@ -655,7 +655,7 @@ xfs_file_dax_write(
{
struct inode *inode = iocb->ki_filp->f_mapping->host;
struct xfs_inode *ip = XFS_I(inode);
- int iolock = XFS_IOLOCK_EXCL;
+ unsigned int iolock = XFS_IOLOCK_EXCL;
ssize_t ret, error = 0;
loff_t pos;
@@ -700,7 +700,7 @@ xfs_file_buffered_write(
struct xfs_inode *ip = XFS_I(inode);
ssize_t ret;
bool cleared_space = false;
- int iolock;
+ unsigned int iolock;
if (iocb->ki_flags & IOCB_NOWAIT)
return -EOPNOTSUPP;
@@ -1181,7 +1181,7 @@ xfs_dir_open(
struct file *file)
{
struct xfs_inode *ip = XFS_I(inode);
- int mode;
+ unsigned int mode;
int error;
error = xfs_file_open(inode, file);
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 9de6205fe134..5ea460f62201 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -416,10 +416,12 @@ xfs_lockdep_subclass_ok(
* parent locking. Care must be taken to ensure we don't overrun the subclass
* storage fields in the class mask we build.
*/
-static inline int
-xfs_lock_inumorder(int lock_mode, int subclass)
+static inline uint
+xfs_lock_inumorder(
+ uint lock_mode,
+ uint subclass)
{
- int class = 0;
+ uint class = 0;
ASSERT(!(lock_mode & (XFS_ILOCK_PARENT | XFS_ILOCK_RTBITMAP |
XFS_ILOCK_RTSUM)));
@@ -464,7 +466,10 @@ xfs_lock_inodes(
int inodes,
uint lock_mode)
{
- int attempts = 0, i, j, try_lock;
+ int attempts = 0;
+ uint i;
+ int j;
+ bool try_lock;
struct xfs_log_item *lp;
/*
@@ -489,9 +494,9 @@ xfs_lock_inodes(
} else if (lock_mode & XFS_MMAPLOCK_EXCL)
ASSERT(!(lock_mode & XFS_ILOCK_EXCL));
- try_lock = 0;
- i = 0;
again:
+ try_lock = false;
+ i = 0;
for (; i < inodes; i++) {
ASSERT(ips[i]);
@@ -506,7 +511,7 @@ xfs_lock_inodes(
for (j = (i - 1); j >= 0 && !try_lock; j--) {
lp = &ips[j]->i_itemp->ili_item;
if (lp && test_bit(XFS_LI_IN_AIL, &lp->li_flags))
- try_lock++;
+ try_lock = true;
}
}
@@ -546,8 +551,6 @@ xfs_lock_inodes(
if ((attempts % 5) == 0) {
delay(1); /* Don't just spin the CPU */
}
- i = 0;
- try_lock = 0;
goto again;
}
}
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
index 740ab13d1aa2..172dba285c37 100644
--- a/fs/xfs/xfs_inode.h
+++ b/fs/xfs/xfs_inode.h
@@ -278,12 +278,12 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
* Bit ranges: 1<<1 - 1<<16-1 -- iolock/ilock modes (bitfield)
* 1<<16 - 1<<32-1 -- lockdep annotation (integers)
*/
-#define XFS_IOLOCK_EXCL (1<<0)
-#define XFS_IOLOCK_SHARED (1<<1)
-#define XFS_ILOCK_EXCL (1<<2)
-#define XFS_ILOCK_SHARED (1<<3)
-#define XFS_MMAPLOCK_EXCL (1<<4)
-#define XFS_MMAPLOCK_SHARED (1<<5)
+#define XFS_IOLOCK_EXCL (1u << 0)
+#define XFS_IOLOCK_SHARED (1u << 1)
+#define XFS_ILOCK_EXCL (1u << 2)
+#define XFS_ILOCK_SHARED (1u << 3)
+#define XFS_MMAPLOCK_EXCL (1u << 4)
+#define XFS_MMAPLOCK_SHARED (1u << 5)
#define XFS_LOCK_MASK (XFS_IOLOCK_EXCL | XFS_IOLOCK_SHARED \
| XFS_ILOCK_EXCL | XFS_ILOCK_SHARED \
@@ -350,12 +350,12 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
*/
#define XFS_IOLOCK_SHIFT 16
#define XFS_IOLOCK_MAX_SUBCLASS 3
-#define XFS_IOLOCK_DEP_MASK 0x000f0000
+#define XFS_IOLOCK_DEP_MASK 0x000f0000u
#define XFS_MMAPLOCK_SHIFT 20
#define XFS_MMAPLOCK_NUMORDER 0
#define XFS_MMAPLOCK_MAX_SUBCLASS 3
-#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
+#define XFS_MMAPLOCK_DEP_MASK 0x00f00000u
#define XFS_ILOCK_SHIFT 24
#define XFS_ILOCK_PARENT_VAL 5
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 14/17] xfs: convert ptag flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (12 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 13/17] xfs: convert inode lock " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 15/17] xfs: convert quota options " Dave Chinner
` (2 subsequent siblings)
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_error.h | 20 ++++++++++----------
fs/xfs/xfs_message.c | 2 +-
fs/xfs/xfs_message.h | 3 ++-
3 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h
index 5735d5ea87ee..5191e9145e55 100644
--- a/fs/xfs/xfs_error.h
+++ b/fs/xfs/xfs_error.h
@@ -64,16 +64,16 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
* XFS panic tags -- allow a call to xfs_alert_tag() be turned into
* a panic by setting xfs_panic_mask in a sysctl.
*/
-#define XFS_NO_PTAG 0
-#define XFS_PTAG_IFLUSH 0x00000001
-#define XFS_PTAG_LOGRES 0x00000002
-#define XFS_PTAG_AILDELETE 0x00000004
-#define XFS_PTAG_ERROR_REPORT 0x00000008
-#define XFS_PTAG_SHUTDOWN_CORRUPT 0x00000010
-#define XFS_PTAG_SHUTDOWN_IOERROR 0x00000020
-#define XFS_PTAG_SHUTDOWN_LOGERROR 0x00000040
-#define XFS_PTAG_FSBLOCK_ZERO 0x00000080
-#define XFS_PTAG_VERIFIER_ERROR 0x00000100
+#define XFS_NO_PTAG 0u
+#define XFS_PTAG_IFLUSH (1u << 0)
+#define XFS_PTAG_LOGRES (1u << 1)
+#define XFS_PTAG_AILDELETE (1u << 2)
+#define XFS_PTAG_ERROR_REPORT (1u << 3)
+#define XFS_PTAG_SHUTDOWN_CORRUPT (1u << 4)
+#define XFS_PTAG_SHUTDOWN_IOERROR (1u << 5)
+#define XFS_PTAG_SHUTDOWN_LOGERROR (1u << 6)
+#define XFS_PTAG_FSBLOCK_ZERO (1u << 7)
+#define XFS_PTAG_VERIFIER_ERROR (1u << 8)
#define XFS_PTAG_STRINGS \
{ XFS_NO_PTAG, "none" }, \
diff --git a/fs/xfs/xfs_message.c b/fs/xfs/xfs_message.c
index bc66d95c8d4c..c5084dce75cd 100644
--- a/fs/xfs/xfs_message.c
+++ b/fs/xfs/xfs_message.c
@@ -62,7 +62,7 @@ define_xfs_printk_level(xfs_debug, KERN_DEBUG);
void
xfs_alert_tag(
const struct xfs_mount *mp,
- int panic_tag,
+ uint32_t panic_tag,
const char *fmt, ...)
{
struct va_format vaf;
diff --git a/fs/xfs/xfs_message.h b/fs/xfs/xfs_message.h
index bb9860ec9a93..dee98e9ccc3d 100644
--- a/fs/xfs/xfs_message.h
+++ b/fs/xfs/xfs_message.h
@@ -11,7 +11,8 @@ void xfs_emerg(const struct xfs_mount *mp, const char *fmt, ...);
extern __printf(2, 3)
void xfs_alert(const struct xfs_mount *mp, const char *fmt, ...);
extern __printf(3, 4)
-void xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...);
+void xfs_alert_tag(const struct xfs_mount *mp, uint32_t tag,
+ const char *fmt, ...);
extern __printf(2, 3)
void xfs_crit(const struct xfs_mount *mp, const char *fmt, ...);
extern __printf(2, 3)
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 15/17] xfs: convert quota options flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (13 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 14/17] xfs: convert ptag " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 16/17] xfs: convert shutdown reasons " Dave Chinner
2022-04-11 0:31 ` [PATCH 17/17] xfs: convert log ticket and iclog flags " Dave Chinner
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/libxfs/xfs_quota_defs.h | 45 +++++++++++++++++++++++-----------
fs/xfs/xfs_trace.h | 16 ------------
2 files changed, 31 insertions(+), 30 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_quota_defs.h b/fs/xfs/libxfs/xfs_quota_defs.h
index fdfe3cc6f15c..3076cd74fcaa 100644
--- a/fs/xfs/libxfs/xfs_quota_defs.h
+++ b/fs/xfs/libxfs/xfs_quota_defs.h
@@ -73,29 +73,45 @@ typedef uint8_t xfs_dqtype_t;
* to a single function. None of these XFS_QMOPT_* flags are meant to have
* persistent values (ie. their values can and will change between versions)
*/
-#define XFS_QMOPT_UQUOTA 0x0000004 /* user dquot requested */
-#define XFS_QMOPT_PQUOTA 0x0000008 /* project dquot requested */
-#define XFS_QMOPT_FORCE_RES 0x0000010 /* ignore quota limits */
-#define XFS_QMOPT_SBVERSION 0x0000040 /* change superblock version num */
-#define XFS_QMOPT_GQUOTA 0x0002000 /* group dquot requested */
+#define XFS_QMOPT_UQUOTA (1u << 0) /* user dquot requested */
+#define XFS_QMOPT_GQUOTA (1u << 1) /* group dquot requested */
+#define XFS_QMOPT_PQUOTA (1u << 2) /* project dquot requested */
+#define XFS_QMOPT_FORCE_RES (1u << 3) /* ignore quota limits */
+#define XFS_QMOPT_SBVERSION (1u << 4) /* change superblock version num */
/*
* flags to xfs_trans_mod_dquot to indicate which field needs to be
* modified.
*/
-#define XFS_QMOPT_RES_REGBLKS 0x0010000
-#define XFS_QMOPT_RES_RTBLKS 0x0020000
-#define XFS_QMOPT_BCOUNT 0x0040000
-#define XFS_QMOPT_ICOUNT 0x0080000
-#define XFS_QMOPT_RTBCOUNT 0x0100000
-#define XFS_QMOPT_DELBCOUNT 0x0200000
-#define XFS_QMOPT_DELRTBCOUNT 0x0400000
-#define XFS_QMOPT_RES_INOS 0x0800000
+#define XFS_QMOPT_RES_REGBLKS (1u << 7)
+#define XFS_QMOPT_RES_RTBLKS (1u << 8)
+#define XFS_QMOPT_BCOUNT (1u << 9)
+#define XFS_QMOPT_ICOUNT (1u << 10)
+#define XFS_QMOPT_RTBCOUNT (1u << 11)
+#define XFS_QMOPT_DELBCOUNT (1u << 12)
+#define XFS_QMOPT_DELRTBCOUNT (1u << 13)
+#define XFS_QMOPT_RES_INOS (1u << 14)
/*
* flags for dqalloc.
*/
-#define XFS_QMOPT_INHERIT 0x1000000
+#define XFS_QMOPT_INHERIT (1u << 31)
+
+#define XFS_QMOPT_FLAGS \
+ { XFS_QMOPT_UQUOTA, "UQUOTA" }, \
+ { XFS_QMOPT_PQUOTA, "PQUOTA" }, \
+ { XFS_QMOPT_FORCE_RES, "FORCE_RES" }, \
+ { XFS_QMOPT_SBVERSION, "SBVERSION" }, \
+ { XFS_QMOPT_GQUOTA, "GQUOTA" }, \
+ { XFS_QMOPT_INHERIT, "INHERIT" }, \
+ { XFS_QMOPT_RES_REGBLKS, "RES_REGBLKS" }, \
+ { XFS_QMOPT_RES_RTBLKS, "RES_RTBLKS" }, \
+ { XFS_QMOPT_BCOUNT, "BCOUNT" }, \
+ { XFS_QMOPT_ICOUNT, "ICOUNT" }, \
+ { XFS_QMOPT_RTBCOUNT, "RTBCOUNT" }, \
+ { XFS_QMOPT_DELBCOUNT, "DELBCOUNT" }, \
+ { XFS_QMOPT_DELRTBCOUNT, "DELRTBCOUNT" }, \
+ { XFS_QMOPT_RES_INOS, "RES_INOS" }
/*
* flags to xfs_trans_mod_dquot.
@@ -114,6 +130,7 @@ typedef uint8_t xfs_dqtype_t;
(XFS_QMOPT_UQUOTA | XFS_QMOPT_PQUOTA | XFS_QMOPT_GQUOTA)
#define XFS_QMOPT_RESBLK_MASK (XFS_QMOPT_RES_REGBLKS | XFS_QMOPT_RES_RTBLKS)
+
extern xfs_failaddr_t xfs_dquot_verify(struct xfs_mount *mp,
struct xfs_disk_dquot *ddq, xfs_dqid_t id);
extern xfs_failaddr_t xfs_dqblk_verify(struct xfs_mount *mp,
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index 989ecda904db..b88bd45da27a 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -1096,22 +1096,6 @@ DEFINE_DQUOT_EVENT(xfs_dqflush_done);
DEFINE_DQUOT_EVENT(xfs_trans_apply_dquot_deltas_before);
DEFINE_DQUOT_EVENT(xfs_trans_apply_dquot_deltas_after);
-#define XFS_QMOPT_FLAGS \
- { XFS_QMOPT_UQUOTA, "UQUOTA" }, \
- { XFS_QMOPT_PQUOTA, "PQUOTA" }, \
- { XFS_QMOPT_FORCE_RES, "FORCE_RES" }, \
- { XFS_QMOPT_SBVERSION, "SBVERSION" }, \
- { XFS_QMOPT_GQUOTA, "GQUOTA" }, \
- { XFS_QMOPT_INHERIT, "INHERIT" }, \
- { XFS_QMOPT_RES_REGBLKS, "RES_REGBLKS" }, \
- { XFS_QMOPT_RES_RTBLKS, "RES_RTBLKS" }, \
- { XFS_QMOPT_BCOUNT, "BCOUNT" }, \
- { XFS_QMOPT_ICOUNT, "ICOUNT" }, \
- { XFS_QMOPT_RTBCOUNT, "RTBCOUNT" }, \
- { XFS_QMOPT_DELBCOUNT, "DELBCOUNT" }, \
- { XFS_QMOPT_DELRTBCOUNT, "DELRTBCOUNT" }, \
- { XFS_QMOPT_RES_INOS, "RES_INOS" }
-
TRACE_EVENT(xfs_trans_mod_dquot,
TP_PROTO(struct xfs_trans *tp, struct xfs_dquot *dqp,
unsigned int field, int64_t delta),
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 16/17] xfs: convert shutdown reasons to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (14 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 15/17] xfs: convert quota options " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:27 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 17/17] xfs: convert log ticket and iclog flags " Dave Chinner
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_fsops.c | 2 +-
fs/xfs/xfs_log.c | 2 +-
fs/xfs/xfs_log.h | 2 +-
fs/xfs/xfs_mount.h | 11 +++++------
4 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
index 68f74549fa22..e4cc6b7cae0f 100644
--- a/fs/xfs/xfs_fsops.c
+++ b/fs/xfs/xfs_fsops.c
@@ -512,7 +512,7 @@ xfs_fs_goingdown(
void
xfs_do_force_shutdown(
struct xfs_mount *mp,
- int flags,
+ uint32_t flags,
char *fname,
int lnnum)
{
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 499e15b24215..3c216140a1c4 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -3829,7 +3829,7 @@ xlog_verify_iclog(
bool
xlog_force_shutdown(
struct xlog *log,
- int shutdown_flags)
+ uint32_t shutdown_flags)
{
bool log_error = (shutdown_flags & SHUTDOWN_LOG_IO_ERROR);
diff --git a/fs/xfs/xfs_log.h b/fs/xfs/xfs_log.h
index dc1b77b92fc1..3ecf891f34c4 100644
--- a/fs/xfs/xfs_log.h
+++ b/fs/xfs/xfs_log.h
@@ -140,7 +140,7 @@ void xfs_log_clean(struct xfs_mount *mp);
bool xfs_log_check_lsn(struct xfs_mount *, xfs_lsn_t);
xfs_lsn_t xlog_grant_push_threshold(struct xlog *log, int need_bytes);
-bool xlog_force_shutdown(struct xlog *log, int shutdown_flags);
+bool xlog_force_shutdown(struct xlog *log, uint32_t shutdown_flags);
void xlog_use_incompat_feat(struct xlog *log);
void xlog_drop_incompat_feat(struct xlog *log);
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index f6dc19de8322..e5629e7c5aaf 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -425,16 +425,15 @@ __XFS_IS_OPSTATE(blockgc_enabled, BLOCKGC_ENABLED)
#define XFS_MAX_IO_LOG 30 /* 1G */
#define XFS_MIN_IO_LOG PAGE_SHIFT
-#define xfs_is_shutdown(mp) xfs_is_shutdown(mp)
-void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname,
+void xfs_do_force_shutdown(struct xfs_mount *mp, uint32_t flags, char *fname,
int lnnum);
#define xfs_force_shutdown(m,f) \
xfs_do_force_shutdown(m, f, __FILE__, __LINE__)
-#define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */
-#define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */
-#define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */
-#define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */
+#define SHUTDOWN_META_IO_ERROR (1u << 0) /* write attempt to metadata failed */
+#define SHUTDOWN_LOG_IO_ERROR (1u << 1) /* write attempt to the log failed */
+#define SHUTDOWN_FORCE_UMOUNT (1u << 2) /* shutdown from a forced unmount */
+#define SHUTDOWN_CORRUPT_INCORE (1u << 3) /* corrupt in-memory structures */
#define XFS_SHUTDOWN_STRINGS \
{ SHUTDOWN_META_IO_ERROR, "metadata_io" }, \
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [PATCH 17/17] xfs: convert log ticket and iclog flags to unsigned.
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
` (15 preceding siblings ...)
2022-04-11 0:31 ` [PATCH 16/17] xfs: convert shutdown reasons " Dave Chinner
@ 2022-04-11 0:31 ` Dave Chinner
2022-04-12 7:27 ` Chandan Babu R
16 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-11 0:31 UTC (permalink / raw)
To: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_log_priv.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h
index 401cdc400980..438df48a84c4 100644
--- a/fs/xfs/xfs_log_priv.h
+++ b/fs/xfs/xfs_log_priv.h
@@ -51,8 +51,8 @@ enum xlog_iclog_state {
/*
* In core log flags
*/
-#define XLOG_ICL_NEED_FLUSH (1 << 0) /* iclog needs REQ_PREFLUSH */
-#define XLOG_ICL_NEED_FUA (1 << 1) /* iclog needs REQ_FUA */
+#define XLOG_ICL_NEED_FLUSH (1u << 0) /* iclog needs REQ_PREFLUSH */
+#define XLOG_ICL_NEED_FUA (1u << 1) /* iclog needs REQ_FUA */
#define XLOG_ICL_STRINGS \
{ XLOG_ICL_NEED_FLUSH, "XLOG_ICL_NEED_FLUSH" }, \
@@ -62,7 +62,7 @@ enum xlog_iclog_state {
/*
* Log ticket flags
*/
-#define XLOG_TIC_PERM_RESERV 0x1 /* permanent reservation */
+#define XLOG_TIC_PERM_RESERV (1u << 0) /* permanent reservation */
#define XLOG_TIC_FLAGS \
{ XLOG_TIC_PERM_RESERV, "XLOG_TIC_PERM_RESERV" }
@@ -165,7 +165,7 @@ typedef struct xlog_ticket {
char t_ocnt; /* original count : 1 */
char t_cnt; /* current count : 1 */
char t_clientid; /* who does this belong to; : 1 */
- char t_flags; /* properties of reservation : 1 */
+ uint8_t t_flags; /* properties of reservation : 1 */
/* reservation array fields */
uint t_res_num; /* num in array : 4 */
--
2.35.1
^ permalink raw reply related [flat|nested] 40+ messages in thread
* Re: [PATCH 01/17] xfs: convert buffer flags to unsigned.
2022-04-11 0:31 ` [PATCH 01/17] xfs: convert buffer flags to unsigned Dave Chinner
@ 2022-04-11 10:05 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 10:05 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned. This manifests as a compiler error such as:
>
> /kisskb/src/fs/xfs/./xfs_trace.h:432:2: note: in expansion of macro 'TP_printk'
> TP_printk("dev %d:%d daddr 0x%llx bbcount 0x%x hold %d pincount %d "
> ^
> /kisskb/src/fs/xfs/./xfs_trace.h:440:5: note: in expansion of macro '__print_flags'
> __print_flags(__entry->flags, "|", XFS_BUF_FLAGS),
> ^
> /kisskb/src/fs/xfs/xfs_buf.h:67:4: note: in expansion of macro 'XBF_UNMAPPED'
> { XBF_UNMAPPED, "UNMAPPED" }
> ^
> /kisskb/src/fs/xfs/./xfs_trace.h:440:40: note: in expansion of macro 'XFS_BUF_FLAGS'
> __print_flags(__entry->flags, "|", XFS_BUF_FLAGS),
> ^
> /kisskb/src/fs/xfs/./xfs_trace.h: In function 'trace_raw_output_xfs_buf_flags_class':
> /kisskb/src/fs/xfs/xfs_buf.h:46:23: error: initializer element is not constant
> #define XBF_UNMAPPED (1 << 31)/* do not map the buffer */
>
> as __print_flags assigns XFS_BUF_FLAGS to a structure that uses an
> unsigned long for the flag. Since this results in the value of
> XBF_UNMAPPED causing a signed integer overflow, the result is
> technically undefined behavior, which gcc-5 does not accept as an
> integer constant.
>
> This is based on a patch from Arnd Bergman <arnd@arndb.de>.
>
Although the underlying data type is the same, may be the type of the fifth
argument to xfs_trans_get_buf() should be changed to xfs_buf_flags_t as well.
With that fixed,
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/xfs_buf.c | 6 +++---
> fs/xfs/xfs_buf.h | 42 +++++++++++++++++++++---------------------
> 2 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
> index e1afb9e503e1..bf4e60871068 100644
> --- a/fs/xfs/xfs_buf.c
> +++ b/fs/xfs/xfs_buf.c
> @@ -406,7 +406,7 @@ xfs_buf_alloc_pages(
> STATIC int
> _xfs_buf_map_pages(
> struct xfs_buf *bp,
> - uint flags)
> + xfs_buf_flags_t flags)
> {
> ASSERT(bp->b_flags & _XBF_PAGES);
> if (bp->b_page_count == 1) {
> @@ -868,7 +868,7 @@ xfs_buf_read_uncached(
> struct xfs_buftarg *target,
> xfs_daddr_t daddr,
> size_t numblks,
> - int flags,
> + xfs_buf_flags_t flags,
> struct xfs_buf **bpp,
> const struct xfs_buf_ops *ops)
> {
> @@ -903,7 +903,7 @@ int
> xfs_buf_get_uncached(
> struct xfs_buftarg *target,
> size_t numblks,
> - int flags,
> + xfs_buf_flags_t flags,
> struct xfs_buf **bpp)
> {
> int error;
> diff --git a/fs/xfs/xfs_buf.h b/fs/xfs/xfs_buf.h
> index edcb6254fa6a..1ee3056ff9cf 100644
> --- a/fs/xfs/xfs_buf.h
> +++ b/fs/xfs/xfs_buf.h
> @@ -22,28 +22,28 @@ struct xfs_buf;
>
> #define XFS_BUF_DADDR_NULL ((xfs_daddr_t) (-1LL))
>
> -#define XBF_READ (1 << 0) /* buffer intended for reading from device */
> -#define XBF_WRITE (1 << 1) /* buffer intended for writing to device */
> -#define XBF_READ_AHEAD (1 << 2) /* asynchronous read-ahead */
> -#define XBF_NO_IOACCT (1 << 3) /* bypass I/O accounting (non-LRU bufs) */
> -#define XBF_ASYNC (1 << 4) /* initiator will not wait for completion */
> -#define XBF_DONE (1 << 5) /* all pages in the buffer uptodate */
> -#define XBF_STALE (1 << 6) /* buffer has been staled, do not find it */
> -#define XBF_WRITE_FAIL (1 << 7) /* async writes have failed on this buffer */
> +#define XBF_READ (1u << 0) /* buffer intended for reading from device */
> +#define XBF_WRITE (1u << 1) /* buffer intended for writing to device */
> +#define XBF_READ_AHEAD (1u << 2) /* asynchronous read-ahead */
> +#define XBF_NO_IOACCT (1u << 3) /* bypass I/O accounting (non-LRU bufs) */
> +#define XBF_ASYNC (1u << 4) /* initiator will not wait for completion */
> +#define XBF_DONE (1u << 5) /* all pages in the buffer uptodate */
> +#define XBF_STALE (1u << 6) /* buffer has been staled, do not find it */
> +#define XBF_WRITE_FAIL (1u << 7) /* async writes have failed on this buffer */
>
> /* buffer type flags for write callbacks */
> -#define _XBF_INODES (1 << 16)/* inode buffer */
> -#define _XBF_DQUOTS (1 << 17)/* dquot buffer */
> -#define _XBF_LOGRECOVERY (1 << 18)/* log recovery buffer */
> +#define _XBF_INODES (1u << 16)/* inode buffer */
> +#define _XBF_DQUOTS (1u << 17)/* dquot buffer */
> +#define _XBF_LOGRECOVERY (1u << 18)/* log recovery buffer */
>
> /* flags used only internally */
> -#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */
> -#define _XBF_KMEM (1 << 21)/* backed by heap memory */
> -#define _XBF_DELWRI_Q (1 << 22)/* buffer on a delwri queue */
> +#define _XBF_PAGES (1u << 20)/* backed by refcounted pages */
> +#define _XBF_KMEM (1u << 21)/* backed by heap memory */
> +#define _XBF_DELWRI_Q (1u << 22)/* buffer on a delwri queue */
>
> /* flags used only as arguments to access routines */
> -#define XBF_TRYLOCK (1 << 30)/* lock requested, but do not wait */
> -#define XBF_UNMAPPED (1 << 31)/* do not map the buffer */
> +#define XBF_TRYLOCK (1u << 30)/* lock requested, but do not wait */
> +#define XBF_UNMAPPED (1u << 31)/* do not map the buffer */
>
> typedef unsigned int xfs_buf_flags_t;
>
> @@ -58,7 +58,7 @@ typedef unsigned int xfs_buf_flags_t;
> { XBF_WRITE_FAIL, "WRITE_FAIL" }, \
> { _XBF_INODES, "INODES" }, \
> { _XBF_DQUOTS, "DQUOTS" }, \
> - { _XBF_LOGRECOVERY, "LOG_RECOVERY" }, \
> + { _XBF_LOGRECOVERY, "LOG_RECOVERY" }, \
> { _XBF_PAGES, "PAGES" }, \
> { _XBF_KMEM, "KMEM" }, \
> { _XBF_DELWRI_Q, "DELWRI_Q" }, \
> @@ -247,11 +247,11 @@ xfs_buf_readahead(
> return xfs_buf_readahead_map(target, &map, 1, ops);
> }
>
> -int xfs_buf_get_uncached(struct xfs_buftarg *target, size_t numblks, int flags,
> - struct xfs_buf **bpp);
> +int xfs_buf_get_uncached(struct xfs_buftarg *target, size_t numblks,
> + xfs_buf_flags_t flags, struct xfs_buf **bpp);
> int xfs_buf_read_uncached(struct xfs_buftarg *target, xfs_daddr_t daddr,
> - size_t numblks, int flags, struct xfs_buf **bpp,
> - const struct xfs_buf_ops *ops);
> + size_t numblks, xfs_buf_flags_t flags, struct xfs_buf **bpp,
> + const struct xfs_buf_ops *ops);
> int _xfs_buf_read(struct xfs_buf *bp, xfs_buf_flags_t flags);
> void xfs_buf_hold(struct xfs_buf *bp);
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 02/17] xfs: convert attr type flags to unsigned.
2022-04-11 0:31 ` [PATCH 02/17] xfs: convert attr type " Dave Chinner
@ 2022-04-11 10:23 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 10:23 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good to me.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_da_format.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_da_format.h b/fs/xfs/libxfs/xfs_da_format.h
> index 5a49caa5c9df..4c6561baf9e9 100644
> --- a/fs/xfs/libxfs/xfs_da_format.h
> +++ b/fs/xfs/libxfs/xfs_da_format.h
> @@ -688,10 +688,10 @@ struct xfs_attr3_leafblock {
> #define XFS_ATTR_ROOT_BIT 1 /* limit access to trusted attrs */
> #define XFS_ATTR_SECURE_BIT 2 /* limit access to secure attrs */
> #define XFS_ATTR_INCOMPLETE_BIT 7 /* attr in middle of create/delete */
> -#define XFS_ATTR_LOCAL (1 << XFS_ATTR_LOCAL_BIT)
> -#define XFS_ATTR_ROOT (1 << XFS_ATTR_ROOT_BIT)
> -#define XFS_ATTR_SECURE (1 << XFS_ATTR_SECURE_BIT)
> -#define XFS_ATTR_INCOMPLETE (1 << XFS_ATTR_INCOMPLETE_BIT)
> +#define XFS_ATTR_LOCAL (1u << XFS_ATTR_LOCAL_BIT)
> +#define XFS_ATTR_ROOT (1u << XFS_ATTR_ROOT_BIT)
> +#define XFS_ATTR_SECURE (1u << XFS_ATTR_SECURE_BIT)
> +#define XFS_ATTR_INCOMPLETE (1u << XFS_ATTR_INCOMPLETE_BIT)
> #define XFS_ATTR_NSP_ONDISK_MASK (XFS_ATTR_ROOT | XFS_ATTR_SECURE)
>
> /*
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 03/17] xfs: convert scrub type flags to unsigned.
2022-04-11 0:31 ` [PATCH 03/17] xfs: convert scrub " Dave Chinner
@ 2022-04-11 10:33 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 10:33 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
> This touches xfs_fs.h so affects the user API, but the user API
> fields are also unsigned so the flags should really be unsigned,
> too.
>
Looks good to me.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_fs.h | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h
> index 505533c43a92..52c9d8676fa3 100644
> --- a/fs/xfs/libxfs/xfs_fs.h
> +++ b/fs/xfs/libxfs/xfs_fs.h
> @@ -699,34 +699,34 @@ struct xfs_scrub_metadata {
> #define XFS_SCRUB_TYPE_NR 25
>
> /* i: Repair this metadata. */
> -#define XFS_SCRUB_IFLAG_REPAIR (1 << 0)
> +#define XFS_SCRUB_IFLAG_REPAIR (1u << 0)
>
> /* o: Metadata object needs repair. */
> -#define XFS_SCRUB_OFLAG_CORRUPT (1 << 1)
> +#define XFS_SCRUB_OFLAG_CORRUPT (1u << 1)
>
> /*
> * o: Metadata object could be optimized. It's not corrupt, but
> * we could improve on it somehow.
> */
> -#define XFS_SCRUB_OFLAG_PREEN (1 << 2)
> +#define XFS_SCRUB_OFLAG_PREEN (1u << 2)
>
> /* o: Cross-referencing failed. */
> -#define XFS_SCRUB_OFLAG_XFAIL (1 << 3)
> +#define XFS_SCRUB_OFLAG_XFAIL (1u << 3)
>
> /* o: Metadata object disagrees with cross-referenced metadata. */
> -#define XFS_SCRUB_OFLAG_XCORRUPT (1 << 4)
> +#define XFS_SCRUB_OFLAG_XCORRUPT (1u << 4)
>
> /* o: Scan was not complete. */
> -#define XFS_SCRUB_OFLAG_INCOMPLETE (1 << 5)
> +#define XFS_SCRUB_OFLAG_INCOMPLETE (1u << 5)
>
> /* o: Metadata object looked funny but isn't corrupt. */
> -#define XFS_SCRUB_OFLAG_WARNING (1 << 6)
> +#define XFS_SCRUB_OFLAG_WARNING (1u << 6)
>
> /*
> * o: IFLAG_REPAIR was set but metadata object did not need fixing or
> * optimization and has therefore not been altered.
> */
> -#define XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED (1 << 7)
> +#define XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED (1u << 7)
>
> #define XFS_SCRUB_FLAGS_IN (XFS_SCRUB_IFLAG_REPAIR)
> #define XFS_SCRUB_FLAGS_OUT (XFS_SCRUB_OFLAG_CORRUPT | \
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 04/17] xfs: convert bmap extent type flags to unsigned.
2022-04-11 0:31 ` [PATCH 04/17] xfs: convert bmap extent " Dave Chinner
@ 2022-04-11 10:42 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 10:42 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good to me.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_bmap.c | 14 +++++++-------
> fs/xfs/libxfs/xfs_bmap.h | 22 +++++++++++-----------
> 2 files changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
> index 74198dd82b03..d53dfe8db8f2 100644
> --- a/fs/xfs/libxfs/xfs_bmap.c
> +++ b/fs/xfs/libxfs/xfs_bmap.c
> @@ -1399,7 +1399,7 @@ xfs_bmap_add_extent_delay_real(
> xfs_bmbt_irec_t r[3]; /* neighbor extent entries */
> /* left is 0, right is 1, prev is 2 */
> int rval=0; /* return value (logging flags) */
> - int state = xfs_bmap_fork_to_state(whichfork);
> + uint32_t state = xfs_bmap_fork_to_state(whichfork);
> xfs_filblks_t da_new; /* new count del alloc blocks used */
> xfs_filblks_t da_old; /* old count del alloc blocks used */
> xfs_filblks_t temp=0; /* value for da_new calculations */
> @@ -1950,7 +1950,7 @@ xfs_bmap_add_extent_unwritten_real(
> xfs_bmbt_irec_t r[3]; /* neighbor extent entries */
> /* left is 0, right is 1, prev is 2 */
> int rval=0; /* return value (logging flags) */
> - int state = xfs_bmap_fork_to_state(whichfork);
> + uint32_t state = xfs_bmap_fork_to_state(whichfork);
> struct xfs_mount *mp = ip->i_mount;
> struct xfs_bmbt_irec old;
>
> @@ -2479,7 +2479,7 @@ xfs_bmap_add_extent_hole_delay(
> xfs_filblks_t newlen=0; /* new indirect size */
> xfs_filblks_t oldlen=0; /* old indirect size */
> xfs_bmbt_irec_t right; /* right neighbor extent entry */
> - int state = xfs_bmap_fork_to_state(whichfork);
> + uint32_t state = xfs_bmap_fork_to_state(whichfork);
> xfs_filblks_t temp; /* temp for indirect calculations */
>
> ifp = XFS_IFORK_PTR(ip, whichfork);
> @@ -2626,7 +2626,7 @@ xfs_bmap_add_extent_hole_real(
> xfs_bmbt_irec_t left; /* left neighbor extent entry */
> xfs_bmbt_irec_t right; /* right neighbor extent entry */
> int rval=0; /* return value (logging flags) */
> - int state = xfs_bmap_fork_to_state(whichfork);
> + uint32_t state = xfs_bmap_fork_to_state(whichfork);
> struct xfs_bmbt_irec old;
>
> ASSERT(!isnullstartblock(new->br_startblock));
> @@ -4801,7 +4801,7 @@ xfs_bmap_del_extent_delay(
> int64_t da_old, da_new, da_diff = 0;
> xfs_fileoff_t del_endoff, got_endoff;
> xfs_filblks_t got_indlen, new_indlen, stolen;
> - int state = xfs_bmap_fork_to_state(whichfork);
> + uint32_t state = xfs_bmap_fork_to_state(whichfork);
> int error = 0;
> bool isrt;
>
> @@ -4926,7 +4926,7 @@ xfs_bmap_del_extent_cow(
> struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, XFS_COW_FORK);
> struct xfs_bmbt_irec new;
> xfs_fileoff_t del_endoff, got_endoff;
> - int state = BMAP_COWFORK;
> + uint32_t state = BMAP_COWFORK;
>
> XFS_STATS_INC(mp, xs_del_exlist);
>
> @@ -5015,7 +5015,7 @@ xfs_bmap_del_extent_real(
> xfs_bmbt_irec_t new; /* new record to be inserted */
> /* REFERENCED */
> uint qfield; /* quota field to update */
> - int state = xfs_bmap_fork_to_state(whichfork);
> + uint32_t state = xfs_bmap_fork_to_state(whichfork);
> struct xfs_bmbt_irec old;
>
> mp = ip->i_mount;
> diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h
> index 03d9aaf87413..29d38c3c2607 100644
> --- a/fs/xfs/libxfs/xfs_bmap.h
> +++ b/fs/xfs/libxfs/xfs_bmap.h
> @@ -124,16 +124,16 @@ static inline int xfs_bmapi_whichfork(int bmapi_flags)
> /*
> * Flags for xfs_bmap_add_extent*.
> */
> -#define BMAP_LEFT_CONTIG (1 << 0)
> -#define BMAP_RIGHT_CONTIG (1 << 1)
> -#define BMAP_LEFT_FILLING (1 << 2)
> -#define BMAP_RIGHT_FILLING (1 << 3)
> -#define BMAP_LEFT_DELAY (1 << 4)
> -#define BMAP_RIGHT_DELAY (1 << 5)
> -#define BMAP_LEFT_VALID (1 << 6)
> -#define BMAP_RIGHT_VALID (1 << 7)
> -#define BMAP_ATTRFORK (1 << 8)
> -#define BMAP_COWFORK (1 << 9)
> +#define BMAP_LEFT_CONTIG (1u << 0)
> +#define BMAP_RIGHT_CONTIG (1u << 1)
> +#define BMAP_LEFT_FILLING (1u << 2)
> +#define BMAP_RIGHT_FILLING (1u << 3)
> +#define BMAP_LEFT_DELAY (1u << 4)
> +#define BMAP_RIGHT_DELAY (1u << 5)
> +#define BMAP_LEFT_VALID (1u << 6)
> +#define BMAP_RIGHT_VALID (1u << 7)
> +#define BMAP_ATTRFORK (1u << 8)
> +#define BMAP_COWFORK (1u << 9)
>
> #define XFS_BMAP_EXT_FLAGS \
> { BMAP_LEFT_CONTIG, "LC" }, \
> @@ -243,7 +243,7 @@ void xfs_bmap_map_extent(struct xfs_trans *tp, struct xfs_inode *ip,
> void xfs_bmap_unmap_extent(struct xfs_trans *tp, struct xfs_inode *ip,
> struct xfs_bmbt_irec *imap);
>
> -static inline int xfs_bmap_fork_to_state(int whichfork)
> +static inline uint32_t xfs_bmap_fork_to_state(int whichfork)
> {
> switch (whichfork) {
> case XFS_ATTR_FORK:
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 05/17] xfs: convert bmapi flags to unsigned.
2022-04-11 0:31 ` [PATCH 05/17] xfs: convert bmapi " Dave Chinner
@ 2022-04-11 12:53 ` Chandan Babu R
2022-04-11 13:44 ` Chandan Babu R
0 siblings, 1 reply; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 12:53 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
The fourth argument of xfs_itruncate_extents_flags() and the return type of
xfs_bmapi_aflag() must be unsigned int.
Also, the data type of bmapi_flags variable in xfs_iomap_write_direct() and
xfs_fs_map_blocks() should be unsigned int.
The remaining changes look good to me.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_bmap.c | 22 +++++++++++-----------
> fs/xfs/libxfs/xfs_bmap.h | 36 ++++++++++++++++++------------------
> 2 files changed, 29 insertions(+), 29 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
> index d53dfe8db8f2..ad938e6e23aa 100644
> --- a/fs/xfs/libxfs/xfs_bmap.c
> +++ b/fs/xfs/libxfs/xfs_bmap.c
> @@ -485,7 +485,7 @@ STATIC void
> xfs_bmap_validate_ret(
> xfs_fileoff_t bno,
> xfs_filblks_t len,
> - int flags,
> + uint32_t flags,
> xfs_bmbt_irec_t *mval,
> int nmap,
> int ret_nmap)
> @@ -2616,7 +2616,7 @@ xfs_bmap_add_extent_hole_real(
> struct xfs_btree_cur **curp,
> struct xfs_bmbt_irec *new,
> int *logflagsp,
> - int flags)
> + uint32_t flags)
> {
> struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, whichfork);
> struct xfs_mount *mp = ip->i_mount;
> @@ -3766,7 +3766,7 @@ xfs_bmapi_trim_map(
> xfs_fileoff_t obno,
> xfs_fileoff_t end,
> int n,
> - int flags)
> + uint32_t flags)
> {
> if ((flags & XFS_BMAPI_ENTIRE) ||
> got->br_startoff + got->br_blockcount <= obno) {
> @@ -3811,7 +3811,7 @@ xfs_bmapi_update_map(
> xfs_fileoff_t obno,
> xfs_fileoff_t end,
> int *n,
> - int flags)
> + uint32_t flags)
> {
> xfs_bmbt_irec_t *mval = *map;
>
> @@ -3864,7 +3864,7 @@ xfs_bmapi_read(
> xfs_filblks_t len,
> struct xfs_bmbt_irec *mval,
> int *nmap,
> - int flags)
> + uint32_t flags)
> {
> struct xfs_mount *mp = ip->i_mount;
> int whichfork = xfs_bmapi_whichfork(flags);
> @@ -4184,7 +4184,7 @@ xfs_bmapi_convert_unwritten(
> struct xfs_bmalloca *bma,
> struct xfs_bmbt_irec *mval,
> xfs_filblks_t len,
> - int flags)
> + uint32_t flags)
> {
> int whichfork = xfs_bmapi_whichfork(flags);
> struct xfs_ifork *ifp = XFS_IFORK_PTR(bma->ip, whichfork);
> @@ -4312,7 +4312,7 @@ xfs_bmapi_write(
> struct xfs_inode *ip, /* incore inode */
> xfs_fileoff_t bno, /* starting file offs. mapped */
> xfs_filblks_t len, /* length to map in file */
> - int flags, /* XFS_BMAPI_... */
> + uint32_t flags, /* XFS_BMAPI_... */
> xfs_extlen_t total, /* total blocks needed */
> struct xfs_bmbt_irec *mval, /* output: map values */
> int *nmap) /* i/o: mval size/count */
> @@ -4629,7 +4629,7 @@ xfs_bmapi_remap(
> xfs_fileoff_t bno,
> xfs_filblks_t len,
> xfs_fsblock_t startblock,
> - int flags)
> + uint32_t flags)
> {
> struct xfs_mount *mp = ip->i_mount;
> struct xfs_ifork *ifp;
> @@ -4999,7 +4999,7 @@ xfs_bmap_del_extent_real(
> xfs_bmbt_irec_t *del, /* data to remove from extents */
> int *logflagsp, /* inode logging flags */
> int whichfork, /* data or attr fork */
> - int bflags) /* bmapi flags */
> + uint32_t bflags) /* bmapi flags */
> {
> xfs_fsblock_t del_endblock=0; /* first block past del */
> xfs_fileoff_t del_endoff; /* first offset past del */
> @@ -5281,7 +5281,7 @@ __xfs_bunmapi(
> struct xfs_inode *ip, /* incore inode */
> xfs_fileoff_t start, /* first file offset deleted */
> xfs_filblks_t *rlen, /* i/o: amount remaining */
> - int flags, /* misc flags */
> + uint32_t flags, /* misc flags */
> xfs_extnum_t nexts) /* number of extents max */
> {
> struct xfs_btree_cur *cur; /* bmap btree cursor */
> @@ -5609,7 +5609,7 @@ xfs_bunmapi(
> struct xfs_inode *ip,
> xfs_fileoff_t bno,
> xfs_filblks_t len,
> - int flags,
> + uint32_t flags,
> xfs_extnum_t nexts,
> int *done)
> {
> diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h
> index 29d38c3c2607..16db95b11589 100644
> --- a/fs/xfs/libxfs/xfs_bmap.h
> +++ b/fs/xfs/libxfs/xfs_bmap.h
> @@ -39,7 +39,7 @@ struct xfs_bmalloca {
> bool aeof; /* allocated space at eof */
> bool conv; /* overwriting unwritten extents */
> int datatype;/* data type being allocated */
> - int flags;
> + uint32_t flags;
> };
>
> #define XFS_BMAP_MAX_NMAP 4
> @@ -47,17 +47,17 @@ struct xfs_bmalloca {
> /*
> * Flags for xfs_bmapi_*
> */
> -#define XFS_BMAPI_ENTIRE 0x001 /* return entire extent, not trimmed */
> -#define XFS_BMAPI_METADATA 0x002 /* mapping metadata not user data */
> -#define XFS_BMAPI_ATTRFORK 0x004 /* use attribute fork not data */
> -#define XFS_BMAPI_PREALLOC 0x008 /* preallocation op: unwritten space */
> -#define XFS_BMAPI_CONTIG 0x020 /* must allocate only one extent */
> +#define XFS_BMAPI_ENTIRE (1u << 0) /* return entire extent untrimmed */
> +#define XFS_BMAPI_METADATA (1u << 1) /* mapping metadata not user data */
> +#define XFS_BMAPI_ATTRFORK (1u << 2) /* use attribute fork not data */
> +#define XFS_BMAPI_PREALLOC (1u << 3) /* preallocating unwritten space */
> +#define XFS_BMAPI_CONTIG (1u << 4) /* must allocate only one extent */
> /*
> * unwritten extent conversion - this needs write cache flushing and no additional
> * allocation alignments. When specified with XFS_BMAPI_PREALLOC it converts
> * from written to unwritten, otherwise convert from unwritten to written.
> */
> -#define XFS_BMAPI_CONVERT 0x040
> +#define XFS_BMAPI_CONVERT (1u << 5)
>
> /*
> * allocate zeroed extents - this requires all newly allocated user data extents
> @@ -65,7 +65,7 @@ struct xfs_bmalloca {
> * Use in conjunction with XFS_BMAPI_CONVERT to convert unwritten extents found
> * during the allocation range to zeroed written extents.
> */
> -#define XFS_BMAPI_ZERO 0x080
> +#define XFS_BMAPI_ZERO (1u << 6)
>
> /*
> * Map the inode offset to the block given in ap->firstblock. Primarily
> @@ -75,16 +75,16 @@ struct xfs_bmalloca {
> * For bunmapi, this flag unmaps the range without adjusting quota, reducing
> * refcount, or freeing the blocks.
> */
> -#define XFS_BMAPI_REMAP 0x100
> +#define XFS_BMAPI_REMAP (1u << 7)
>
> /* Map something in the CoW fork. */
> -#define XFS_BMAPI_COWFORK 0x200
> +#define XFS_BMAPI_COWFORK (1u << 8)
>
> /* Skip online discard of freed extents */
> -#define XFS_BMAPI_NODISCARD 0x1000
> +#define XFS_BMAPI_NODISCARD (1u << 9)
>
> /* Do not update the rmap btree. Used for reconstructing bmbt from rmapbt. */
> -#define XFS_BMAPI_NORMAP 0x2000
> +#define XFS_BMAPI_NORMAP (1u << 10)
>
> #define XFS_BMAPI_FLAGS \
> { XFS_BMAPI_ENTIRE, "ENTIRE" }, \
> @@ -106,7 +106,7 @@ static inline int xfs_bmapi_aflag(int w)
> (w == XFS_COW_FORK ? XFS_BMAPI_COWFORK : 0));
> }
>
> -static inline int xfs_bmapi_whichfork(int bmapi_flags)
> +static inline int xfs_bmapi_whichfork(uint32_t bmapi_flags)
> {
> if (bmapi_flags & XFS_BMAPI_COWFORK)
> return XFS_COW_FORK;
> @@ -183,15 +183,15 @@ int xfs_bmap_last_offset(struct xfs_inode *ip, xfs_fileoff_t *unused,
> int whichfork);
> int xfs_bmapi_read(struct xfs_inode *ip, xfs_fileoff_t bno,
> xfs_filblks_t len, struct xfs_bmbt_irec *mval,
> - int *nmap, int flags);
> + int *nmap, uint32_t flags);
> int xfs_bmapi_write(struct xfs_trans *tp, struct xfs_inode *ip,
> - xfs_fileoff_t bno, xfs_filblks_t len, int flags,
> + xfs_fileoff_t bno, xfs_filblks_t len, uint32_t flags,
> xfs_extlen_t total, struct xfs_bmbt_irec *mval, int *nmap);
> int __xfs_bunmapi(struct xfs_trans *tp, struct xfs_inode *ip,
> - xfs_fileoff_t bno, xfs_filblks_t *rlen, int flags,
> + xfs_fileoff_t bno, xfs_filblks_t *rlen, uint32_t flags,
> xfs_extnum_t nexts);
> int xfs_bunmapi(struct xfs_trans *tp, struct xfs_inode *ip,
> - xfs_fileoff_t bno, xfs_filblks_t len, int flags,
> + xfs_fileoff_t bno, xfs_filblks_t len, uint32_t flags,
> xfs_extnum_t nexts, int *done);
> int xfs_bmap_del_extent_delay(struct xfs_inode *ip, int whichfork,
> struct xfs_iext_cursor *cur, struct xfs_bmbt_irec *got,
> @@ -260,7 +260,7 @@ xfs_failaddr_t xfs_bmap_validate_extent(struct xfs_inode *ip, int whichfork,
>
> int xfs_bmapi_remap(struct xfs_trans *tp, struct xfs_inode *ip,
> xfs_fileoff_t bno, xfs_filblks_t len, xfs_fsblock_t startblock,
> - int flags);
> + uint32_t flags);
>
> extern struct kmem_cache *xfs_bmap_intent_cache;
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 06/17] xfs: convert AGF log flags to unsigned.
2022-04-11 0:31 ` [PATCH 06/17] xfs: convert AGF log " Dave Chinner
@ 2022-04-11 13:27 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 13:27 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks correct.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_alloc.c | 10 +++++-----
> fs/xfs/libxfs/xfs_alloc.h | 2 +-
> fs/xfs/libxfs/xfs_format.h | 38 +++++++++++++++++++-------------------
> 3 files changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
> index b52ed339727f..1ff3fa67d4c9 100644
> --- a/fs/xfs/libxfs/xfs_alloc.c
> +++ b/fs/xfs/libxfs/xfs_alloc.c
> @@ -2777,7 +2777,7 @@ xfs_alloc_get_freelist(
> xfs_agblock_t bno;
> __be32 *agfl_bno;
> int error;
> - int logflags;
> + uint32_t logflags;
> struct xfs_mount *mp = tp->t_mountp;
> struct xfs_perag *pag;
>
> @@ -2830,9 +2830,9 @@ xfs_alloc_get_freelist(
> */
> void
> xfs_alloc_log_agf(
> - xfs_trans_t *tp, /* transaction pointer */
> - struct xfs_buf *bp, /* buffer for a.g. freelist header */
> - int fields) /* mask of fields to be logged (XFS_AGF_...) */
> + struct xfs_trans *tp,
> + struct xfs_buf *bp,
> + uint32_t fields)
> {
> int first; /* first byte offset */
> int last; /* last byte offset */
> @@ -2902,7 +2902,7 @@ xfs_alloc_put_freelist(
> struct xfs_perag *pag;
> __be32 *blockp;
> int error;
> - int logflags;
> + uint32_t logflags;
> __be32 *agfl_bno;
> int startoff;
>
> diff --git a/fs/xfs/libxfs/xfs_alloc.h b/fs/xfs/libxfs/xfs_alloc.h
> index d4c057b764f9..84ca09b2223f 100644
> --- a/fs/xfs/libxfs/xfs_alloc.h
> +++ b/fs/xfs/libxfs/xfs_alloc.h
> @@ -121,7 +121,7 @@ void
> xfs_alloc_log_agf(
> struct xfs_trans *tp, /* transaction pointer */
> struct xfs_buf *bp, /* buffer for a.g. freelist header */
> - int fields);/* mask of fields to be logged (XFS_AGF_...) */
> + uint32_t fields);/* mask of fields to be logged (XFS_AGF_...) */
>
> /*
> * Interface for inode allocation to force the pag data to be initialized.
> diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
> index d665c04e69dd..65e24847841e 100644
> --- a/fs/xfs/libxfs/xfs_format.h
> +++ b/fs/xfs/libxfs/xfs_format.h
> @@ -525,26 +525,26 @@ typedef struct xfs_agf {
>
> #define XFS_AGF_CRC_OFF offsetof(struct xfs_agf, agf_crc)
>
> -#define XFS_AGF_MAGICNUM 0x00000001
> -#define XFS_AGF_VERSIONNUM 0x00000002
> -#define XFS_AGF_SEQNO 0x00000004
> -#define XFS_AGF_LENGTH 0x00000008
> -#define XFS_AGF_ROOTS 0x00000010
> -#define XFS_AGF_LEVELS 0x00000020
> -#define XFS_AGF_FLFIRST 0x00000040
> -#define XFS_AGF_FLLAST 0x00000080
> -#define XFS_AGF_FLCOUNT 0x00000100
> -#define XFS_AGF_FREEBLKS 0x00000200
> -#define XFS_AGF_LONGEST 0x00000400
> -#define XFS_AGF_BTREEBLKS 0x00000800
> -#define XFS_AGF_UUID 0x00001000
> -#define XFS_AGF_RMAP_BLOCKS 0x00002000
> -#define XFS_AGF_REFCOUNT_BLOCKS 0x00004000
> -#define XFS_AGF_REFCOUNT_ROOT 0x00008000
> -#define XFS_AGF_REFCOUNT_LEVEL 0x00010000
> -#define XFS_AGF_SPARE64 0x00020000
> +#define XFS_AGF_MAGICNUM (1u << 0)
> +#define XFS_AGF_VERSIONNUM (1u << 1)
> +#define XFS_AGF_SEQNO (1u << 2)
> +#define XFS_AGF_LENGTH (1u << 3)
> +#define XFS_AGF_ROOTS (1u << 4)
> +#define XFS_AGF_LEVELS (1u << 5)
> +#define XFS_AGF_FLFIRST (1u << 6)
> +#define XFS_AGF_FLLAST (1u << 7)
> +#define XFS_AGF_FLCOUNT (1u << 8)
> +#define XFS_AGF_FREEBLKS (1u << 9)
> +#define XFS_AGF_LONGEST (1u << 10)
> +#define XFS_AGF_BTREEBLKS (1u << 11)
> +#define XFS_AGF_UUID (1u << 12)
> +#define XFS_AGF_RMAP_BLOCKS (1u << 13)
> +#define XFS_AGF_REFCOUNT_BLOCKS (1u << 14)
> +#define XFS_AGF_REFCOUNT_ROOT (1u << 15)
> +#define XFS_AGF_REFCOUNT_LEVEL (1u << 16)
> +#define XFS_AGF_SPARE64 (1u << 17)
> #define XFS_AGF_NUM_BITS 18
> -#define XFS_AGF_ALL_BITS ((1 << XFS_AGF_NUM_BITS) - 1)
> +#define XFS_AGF_ALL_BITS ((1u << XFS_AGF_NUM_BITS) - 1)
>
> #define XFS_AGF_FLAGS \
> { XFS_AGF_MAGICNUM, "MAGICNUM" }, \
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 05/17] xfs: convert bmapi flags to unsigned.
2022-04-11 12:53 ` Chandan Babu R
@ 2022-04-11 13:44 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 13:44 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 18:23, Chandan Babu R wrote:
> On 11 Apr 2022 at 06:01, Dave Chinner wrote:
>> From: Dave Chinner <dchinner@redhat.com>
>>
>> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
>> fields to be unsigned.
>>
>
> The fourth argument of xfs_itruncate_extents_flags() and the return type of
> xfs_bmapi_aflag() must be unsigned int.
>
> Also, the data type of bmapi_flags variable in xfs_iomap_write_direct() and
> xfs_fs_map_blocks() should be unsigned int.
Please ignore the above two statements. The corresponding code has values
being assigned to a signed int variable rather than an unsigned int variable.
>
> The remaining changes look good to me.
>
> Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
>
>> Signed-off-by: Dave Chinner <dchinner@redhat.com>
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 07/17] xfs: convert AGI log flags to unsigned.
2022-04-11 0:31 ` [PATCH 07/17] xfs: convert AGI " Dave Chinner
@ 2022-04-11 13:49 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 13:49 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks correct.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_format.h | 30 +++++++++++++++---------------
> fs/xfs/libxfs/xfs_ialloc.c | 6 +++---
> fs/xfs/libxfs/xfs_ialloc.h | 2 +-
> 3 files changed, 19 insertions(+), 19 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
> index 65e24847841e..0d6fa199a896 100644
> --- a/fs/xfs/libxfs/xfs_format.h
> +++ b/fs/xfs/libxfs/xfs_format.h
> @@ -619,22 +619,22 @@ typedef struct xfs_agi {
>
> #define XFS_AGI_CRC_OFF offsetof(struct xfs_agi, agi_crc)
>
> -#define XFS_AGI_MAGICNUM (1 << 0)
> -#define XFS_AGI_VERSIONNUM (1 << 1)
> -#define XFS_AGI_SEQNO (1 << 2)
> -#define XFS_AGI_LENGTH (1 << 3)
> -#define XFS_AGI_COUNT (1 << 4)
> -#define XFS_AGI_ROOT (1 << 5)
> -#define XFS_AGI_LEVEL (1 << 6)
> -#define XFS_AGI_FREECOUNT (1 << 7)
> -#define XFS_AGI_NEWINO (1 << 8)
> -#define XFS_AGI_DIRINO (1 << 9)
> -#define XFS_AGI_UNLINKED (1 << 10)
> +#define XFS_AGI_MAGICNUM (1u << 0)
> +#define XFS_AGI_VERSIONNUM (1u << 1)
> +#define XFS_AGI_SEQNO (1u << 2)
> +#define XFS_AGI_LENGTH (1u << 3)
> +#define XFS_AGI_COUNT (1u << 4)
> +#define XFS_AGI_ROOT (1u << 5)
> +#define XFS_AGI_LEVEL (1u << 6)
> +#define XFS_AGI_FREECOUNT (1u << 7)
> +#define XFS_AGI_NEWINO (1u << 8)
> +#define XFS_AGI_DIRINO (1u << 9)
> +#define XFS_AGI_UNLINKED (1u << 10)
> #define XFS_AGI_NUM_BITS_R1 11 /* end of the 1st agi logging region */
> -#define XFS_AGI_ALL_BITS_R1 ((1 << XFS_AGI_NUM_BITS_R1) - 1)
> -#define XFS_AGI_FREE_ROOT (1 << 11)
> -#define XFS_AGI_FREE_LEVEL (1 << 12)
> -#define XFS_AGI_IBLOCKS (1 << 13) /* both inobt/finobt block counters */
> +#define XFS_AGI_ALL_BITS_R1 ((1u << XFS_AGI_NUM_BITS_R1) - 1)
> +#define XFS_AGI_FREE_ROOT (1u << 11)
> +#define XFS_AGI_FREE_LEVEL (1u << 12)
> +#define XFS_AGI_IBLOCKS (1u << 13) /* both inobt/finobt block counters */
> #define XFS_AGI_NUM_BITS_R2 14
>
> /* disk block (xfs_daddr_t) in the AG */
> diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c
> index b418fe0c0679..54c2be6a2972 100644
> --- a/fs/xfs/libxfs/xfs_ialloc.c
> +++ b/fs/xfs/libxfs/xfs_ialloc.c
> @@ -2414,9 +2414,9 @@ xfs_imap(
> */
> void
> xfs_ialloc_log_agi(
> - xfs_trans_t *tp, /* transaction pointer */
> - struct xfs_buf *bp, /* allocation group header buffer */
> - int fields) /* bitmask of fields to log */
> + struct xfs_trans *tp,
> + struct xfs_buf *bp,
> + uint32_t fields)
> {
> int first; /* first byte number */
> int last; /* last byte number */
> diff --git a/fs/xfs/libxfs/xfs_ialloc.h b/fs/xfs/libxfs/xfs_ialloc.h
> index 8b5c2b709022..a7705b6a1fd3 100644
> --- a/fs/xfs/libxfs/xfs_ialloc.h
> +++ b/fs/xfs/libxfs/xfs_ialloc.h
> @@ -60,7 +60,7 @@ void
> xfs_ialloc_log_agi(
> struct xfs_trans *tp, /* transaction pointer */
> struct xfs_buf *bp, /* allocation group header buffer */
> - int fields); /* bitmask of fields to log */
> + uint32_t fields); /* bitmask of fields to log */
>
> /*
> * Read in the allocation group header (inode allocation section)
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 08/17] xfs: convert btree buffer log flags to unsigned.
2022-04-11 0:31 ` [PATCH 08/17] xfs: convert btree buffer " Dave Chinner
@ 2022-04-11 14:03 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-11 14:03 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
> We also pass the fields to log to xfs_btree_offsets() as a uint32_t
> all cases now. I have no idea why we made that parameter a int64_t
> in the first place, but while we are fixing this up change it to
> a uint32_t field, too.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_btree.c | 10 +++++-----
> fs/xfs/libxfs/xfs_btree.h | 26 +++++++++++++-------------
> 2 files changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c
> index c1500b238520..a8c79e760d8a 100644
> --- a/fs/xfs/libxfs/xfs_btree.c
> +++ b/fs/xfs/libxfs/xfs_btree.c
> @@ -751,20 +751,20 @@ xfs_btree_lastrec(
> */
> void
> xfs_btree_offsets(
> - int64_t fields, /* bitmask of fields */
> + uint32_t fields, /* bitmask of fields */
> const short *offsets, /* table of field offsets */
> int nbits, /* number of bits to inspect */
> int *first, /* output: first byte offset */
> int *last) /* output: last byte offset */
> {
> int i; /* current bit number */
> - int64_t imask; /* mask for current bit number */
> + uint32_t imask; /* mask for current bit number */
>
> ASSERT(fields != 0);
> /*
> * Find the lowest bit, so the first byte offset.
> */
> - for (i = 0, imask = 1LL; ; i++, imask <<= 1) {
> + for (i = 0, imask = 1u; ; i++, imask <<= 1) {
> if (imask & fields) {
> *first = offsets[i];
> break;
> @@ -773,7 +773,7 @@ xfs_btree_offsets(
> /*
> * Find the highest bit, so the last byte offset.
> */
> - for (i = nbits - 1, imask = 1LL << i; ; i--, imask >>= 1) {
> + for (i = nbits - 1, imask = 1u << i; ; i--, imask >>= 1) {
> if (imask & fields) {
> *last = offsets[i + 1] - 1;
> break;
> @@ -1456,7 +1456,7 @@ void
> xfs_btree_log_block(
> struct xfs_btree_cur *cur, /* btree cursor */
> struct xfs_buf *bp, /* buffer containing btree block */
> - int fields) /* mask of fields: XFS_BB_... */
> + uint32_t fields) /* mask of fields: XFS_BB_... */
> {
> int first; /* first byte offset logged */
> int last; /* last byte offset logged */
> diff --git a/fs/xfs/libxfs/xfs_btree.h b/fs/xfs/libxfs/xfs_btree.h
> index 22d9f411fde6..eef27858a013 100644
> --- a/fs/xfs/libxfs/xfs_btree.h
> +++ b/fs/xfs/libxfs/xfs_btree.h
> @@ -68,19 +68,19 @@ uint32_t xfs_btree_magic(int crc, xfs_btnum_t btnum);
> /*
> * For logging record fields.
> */
> -#define XFS_BB_MAGIC (1 << 0)
> -#define XFS_BB_LEVEL (1 << 1)
> -#define XFS_BB_NUMRECS (1 << 2)
> -#define XFS_BB_LEFTSIB (1 << 3)
> -#define XFS_BB_RIGHTSIB (1 << 4)
> -#define XFS_BB_BLKNO (1 << 5)
> -#define XFS_BB_LSN (1 << 6)
> -#define XFS_BB_UUID (1 << 7)
> -#define XFS_BB_OWNER (1 << 8)
> +#define XFS_BB_MAGIC (1u << 0)
> +#define XFS_BB_LEVEL (1u << 1)
> +#define XFS_BB_NUMRECS (1u << 2)
> +#define XFS_BB_LEFTSIB (1u << 3)
> +#define XFS_BB_RIGHTSIB (1u << 4)
> +#define XFS_BB_BLKNO (1u << 5)
> +#define XFS_BB_LSN (1u << 6)
> +#define XFS_BB_UUID (1u << 7)
> +#define XFS_BB_OWNER (1u << 8)
> #define XFS_BB_NUM_BITS 5
> -#define XFS_BB_ALL_BITS ((1 << XFS_BB_NUM_BITS) - 1)
> +#define XFS_BB_ALL_BITS ((1u << XFS_BB_NUM_BITS) - 1)
> #define XFS_BB_NUM_BITS_CRC 9
> -#define XFS_BB_ALL_BITS_CRC ((1 << XFS_BB_NUM_BITS_CRC) - 1)
> +#define XFS_BB_ALL_BITS_CRC ((1u << XFS_BB_NUM_BITS_CRC) - 1)
>
> /*
> * Generic stats interface
> @@ -345,7 +345,7 @@ xfs_btree_dup_cursor(
> */
> void
> xfs_btree_offsets(
> - int64_t fields, /* bitmask of fields */
> + uint32_t fields, /* bitmask of fields */
> const short *offsets,/* table of field offsets */
> int nbits, /* number of bits to inspect */
> int *first, /* output: first byte offset */
> @@ -435,7 +435,7 @@ bool xfs_btree_sblock_verify_crc(struct xfs_buf *);
> /*
> * Internal btree helpers also used by xfs_bmap.c.
> */
> -void xfs_btree_log_block(struct xfs_btree_cur *, struct xfs_buf *, int);
> +void xfs_btree_log_block(struct xfs_btree_cur *, struct xfs_buf *, uint32_t);
> void xfs_btree_log_recs(struct xfs_btree_cur *, struct xfs_buf *, int, int);
>
> /*
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 09/17] xfs: convert buffer log item flags to unsigned.
2022-04-11 0:31 ` [PATCH 09/17] xfs: convert buffer log item " Dave Chinner
@ 2022-04-12 7:25 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:25 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/xfs_buf_item.h | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/fs/xfs/xfs_buf_item.h b/fs/xfs/xfs_buf_item.h
> index e11e9ef2338f..4d8a6aece995 100644
> --- a/fs/xfs/xfs_buf_item.h
> +++ b/fs/xfs/xfs_buf_item.h
> @@ -8,15 +8,18 @@
>
> /* kernel only definitions */
>
> +struct xfs_buf;
> +struct xfs_mount;
> +
> /* buf log item flags */
> -#define XFS_BLI_HOLD 0x01
> -#define XFS_BLI_DIRTY 0x02
> -#define XFS_BLI_STALE 0x04
> -#define XFS_BLI_LOGGED 0x08
> -#define XFS_BLI_INODE_ALLOC_BUF 0x10
> -#define XFS_BLI_STALE_INODE 0x20
> -#define XFS_BLI_INODE_BUF 0x40
> -#define XFS_BLI_ORDERED 0x80
> +#define XFS_BLI_HOLD (1u << 0)
> +#define XFS_BLI_DIRTY (1u << 1)
> +#define XFS_BLI_STALE (1u << 2)
> +#define XFS_BLI_LOGGED (1u << 3)
> +#define XFS_BLI_INODE_ALLOC_BUF (1u << 4)
> +#define XFS_BLI_STALE_INODE (1u << 5)
> +#define XFS_BLI_INODE_BUF (1u << 6)
> +#define XFS_BLI_ORDERED (1u << 7)
>
> #define XFS_BLI_FLAGS \
> { XFS_BLI_HOLD, "HOLD" }, \
> @@ -28,11 +31,6 @@
> { XFS_BLI_INODE_BUF, "INODE_BUF" }, \
> { XFS_BLI_ORDERED, "ORDERED" }
>
> -
> -struct xfs_buf;
> -struct xfs_mount;
> -struct xfs_buf_log_item;
> -
> /*
> * This is the in core log item structure used to track information
> * needed to log buffers. It tracks how many times the lock has been
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 10/17] xfs: convert da btree operations flags to unsigned.
2022-04-11 0:31 ` [PATCH 10/17] xfs: convert da btree operations " Dave Chinner
@ 2022-04-12 7:25 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:25 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_da_btree.h | 16 ++++++++--------
> fs/xfs/xfs_trace.h | 8 ++++----
> 2 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_da_btree.h b/fs/xfs/libxfs/xfs_da_btree.h
> index 0faf7d9ac241..7b0f986e5cb5 100644
> --- a/fs/xfs/libxfs/xfs_da_btree.h
> +++ b/fs/xfs/libxfs/xfs_da_btree.h
> @@ -76,19 +76,19 @@ typedef struct xfs_da_args {
> xfs_dablk_t rmtblkno2; /* remote attr value starting blkno */
> int rmtblkcnt2; /* remote attr value block count */
> int rmtvaluelen2; /* remote attr value length in bytes */
> - int op_flags; /* operation flags */
> + uint32_t op_flags; /* operation flags */
> enum xfs_dacmp cmpresult; /* name compare result for lookups */
> } xfs_da_args_t;
>
> /*
> * Operation flags:
> */
> -#define XFS_DA_OP_JUSTCHECK 0x0001 /* check for ok with no space */
> -#define XFS_DA_OP_RENAME 0x0002 /* this is an atomic rename op */
> -#define XFS_DA_OP_ADDNAME 0x0004 /* this is an add operation */
> -#define XFS_DA_OP_OKNOENT 0x0008 /* lookup/add op, ENOENT ok, else die */
> -#define XFS_DA_OP_CILOOKUP 0x0010 /* lookup to return CI name if found */
> -#define XFS_DA_OP_NOTIME 0x0020 /* don't update inode timestamps */
> +#define XFS_DA_OP_JUSTCHECK (1u << 0) /* check for ok with no space */
> +#define XFS_DA_OP_RENAME (1u << 1) /* this is an atomic rename op */
> +#define XFS_DA_OP_ADDNAME (1u << 2) /* this is an add operation */
> +#define XFS_DA_OP_OKNOENT (1u << 3) /* lookup op, ENOENT ok, else die */
> +#define XFS_DA_OP_CILOOKUP (1u << 4) /* lookup returns CI name if found */
> +#define XFS_DA_OP_NOTIME (1u << 5) /* don't update inode timestamps */
>
> #define XFS_DA_OP_FLAGS \
> { XFS_DA_OP_JUSTCHECK, "JUSTCHECK" }, \
> @@ -197,7 +197,7 @@ int xfs_da3_node_read_mapped(struct xfs_trans *tp, struct xfs_inode *dp,
> * Utility routines.
> */
>
> -#define XFS_DABUF_MAP_HOLE_OK (1 << 0)
> +#define XFS_DABUF_MAP_HOLE_OK (1u << 0)
>
> int xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno);
> int xfs_da_grow_inode_int(struct xfs_da_args *args, xfs_fileoff_t *bno,
> diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
> index b141ef78c755..989ecda904db 100644
> --- a/fs/xfs/xfs_trace.h
> +++ b/fs/xfs/xfs_trace.h
> @@ -1924,7 +1924,7 @@ DECLARE_EVENT_CLASS(xfs_da_class,
> __field(int, namelen)
> __field(xfs_dahash_t, hashval)
> __field(xfs_ino_t, inumber)
> - __field(int, op_flags)
> + __field(uint32_t, op_flags)
> ),
> TP_fast_assign(
> __entry->dev = VFS_I(args->dp)->i_sb->s_dev;
> @@ -1990,7 +1990,7 @@ DECLARE_EVENT_CLASS(xfs_attr_class,
> __field(xfs_dahash_t, hashval)
> __field(unsigned int, attr_filter)
> __field(unsigned int, attr_flags)
> - __field(int, op_flags)
> + __field(uint32_t, op_flags)
> ),
> TP_fast_assign(
> __entry->dev = VFS_I(args->dp)->i_sb->s_dev;
> @@ -2097,7 +2097,7 @@ DECLARE_EVENT_CLASS(xfs_dir2_space_class,
> TP_STRUCT__entry(
> __field(dev_t, dev)
> __field(xfs_ino_t, ino)
> - __field(int, op_flags)
> + __field(uint32_t, op_flags)
> __field(int, idx)
> ),
> TP_fast_assign(
> @@ -2128,7 +2128,7 @@ TRACE_EVENT(xfs_dir2_leafn_moveents,
> TP_STRUCT__entry(
> __field(dev_t, dev)
> __field(xfs_ino_t, ino)
> - __field(int, op_flags)
> + __field(uint32_t, op_flags)
> __field(int, src_idx)
> __field(int, dst_idx)
> __field(int, count)
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 11/17] xfs: convert dquot flags to unsigned.
2022-04-11 0:31 ` [PATCH 11/17] xfs: convert dquot " Dave Chinner
@ 2022-04-12 7:26 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:26 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_format.h | 8 ++++----
> fs/xfs/libxfs/xfs_quota_defs.h | 4 ++--
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
> index 0d6fa199a896..f524736d811e 100644
> --- a/fs/xfs/libxfs/xfs_format.h
> +++ b/fs/xfs/libxfs/xfs_format.h
> @@ -1085,10 +1085,10 @@ static inline bool xfs_dinode_has_bigtime(const struct xfs_dinode *dip)
> #define XFS_DQUOT_MAGIC 0x4451 /* 'DQ' */
> #define XFS_DQUOT_VERSION (uint8_t)0x01 /* latest version number */
>
> -#define XFS_DQTYPE_USER 0x01 /* user dquot record */
> -#define XFS_DQTYPE_PROJ 0x02 /* project dquot record */
> -#define XFS_DQTYPE_GROUP 0x04 /* group dquot record */
> -#define XFS_DQTYPE_BIGTIME 0x80 /* large expiry timestamps */
> +#define XFS_DQTYPE_USER (1u << 0) /* user dquot record */
> +#define XFS_DQTYPE_PROJ (1u << 1) /* project dquot record */
> +#define XFS_DQTYPE_GROUP (1u << 2) /* group dquot record */
> +#define XFS_DQTYPE_BIGTIME (1u << 7) /* large expiry timestamps */
>
> /* bitmask to determine if this is a user/group/project dquot */
> #define XFS_DQTYPE_REC_MASK (XFS_DQTYPE_USER | \
> diff --git a/fs/xfs/libxfs/xfs_quota_defs.h b/fs/xfs/libxfs/xfs_quota_defs.h
> index a02c5062f9b2..fdfe3cc6f15c 100644
> --- a/fs/xfs/libxfs/xfs_quota_defs.h
> +++ b/fs/xfs/libxfs/xfs_quota_defs.h
> @@ -29,8 +29,8 @@ typedef uint8_t xfs_dqtype_t;
> /*
> * flags for q_flags field in the dquot.
> */
> -#define XFS_DQFLAG_DIRTY (1 << 0) /* dquot is dirty */
> -#define XFS_DQFLAG_FREEING (1 << 1) /* dquot is being torn down */
> +#define XFS_DQFLAG_DIRTY (1u << 0) /* dquot is dirty */
> +#define XFS_DQFLAG_FREEING (1u << 1) /* dquot is being torn down */
>
> #define XFS_DQFLAG_STRINGS \
> { XFS_DQFLAG_DIRTY, "DIRTY" }, \
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 12/17] xfs: convert log item tracepoint flags to unsigned.
2022-04-11 0:31 ` [PATCH 12/17] xfs: convert log item tracepoint " Dave Chinner
@ 2022-04-12 7:26 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:26 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/xfs_trans.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
> index de177842b951..569b68fc6912 100644
> --- a/fs/xfs/xfs_trans.h
> +++ b/fs/xfs/xfs_trans.h
> @@ -58,10 +58,10 @@ struct xfs_log_item {
> #define XFS_LI_DIRTY 3 /* log item dirty in transaction */
>
> #define XFS_LI_FLAGS \
> - { (1 << XFS_LI_IN_AIL), "IN_AIL" }, \
> - { (1 << XFS_LI_ABORTED), "ABORTED" }, \
> - { (1 << XFS_LI_FAILED), "FAILED" }, \
> - { (1 << XFS_LI_DIRTY), "DIRTY" }
> + { (1u << XFS_LI_IN_AIL), "IN_AIL" }, \
> + { (1u << XFS_LI_ABORTED), "ABORTED" }, \
> + { (1u << XFS_LI_FAILED), "FAILED" }, \
> + { (1u << XFS_LI_DIRTY), "DIRTY" }
>
> struct xfs_item_ops {
> unsigned flags;
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 13/17] xfs: convert inode lock flags to unsigned.
2022-04-11 0:31 ` [PATCH 13/17] xfs: convert inode lock " Dave Chinner
@ 2022-04-12 7:26 ` Chandan Babu R
2022-04-12 8:43 ` Dave Chinner
0 siblings, 1 reply; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:26 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
[...]
> @@ -350,12 +350,12 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
> */
> #define XFS_IOLOCK_SHIFT 16
> #define XFS_IOLOCK_MAX_SUBCLASS 3
> -#define XFS_IOLOCK_DEP_MASK 0x000f0000
> +#define XFS_IOLOCK_DEP_MASK 0x000f0000u
>
> #define XFS_MMAPLOCK_SHIFT 20
> #define XFS_MMAPLOCK_NUMORDER 0
> #define XFS_MMAPLOCK_MAX_SUBCLASS 3
> -#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
> +#define XFS_MMAPLOCK_DEP_MASK 0x00f00000u
>
> #define XFS_ILOCK_SHIFT 24
> #define XFS_ILOCK_PARENT_VAL 5
Why isn't the value of XFS_ILOCK_DEP_MASK marked as unsigned?
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 14/17] xfs: convert ptag flags to unsigned.
2022-04-11 0:31 ` [PATCH 14/17] xfs: convert ptag " Dave Chinner
@ 2022-04-12 7:26 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:26 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/xfs_error.h | 20 ++++++++++----------
> fs/xfs/xfs_message.c | 2 +-
> fs/xfs/xfs_message.h | 3 ++-
> 3 files changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h
> index 5735d5ea87ee..5191e9145e55 100644
> --- a/fs/xfs/xfs_error.h
> +++ b/fs/xfs/xfs_error.h
> @@ -64,16 +64,16 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
> * XFS panic tags -- allow a call to xfs_alert_tag() be turned into
> * a panic by setting xfs_panic_mask in a sysctl.
> */
> -#define XFS_NO_PTAG 0
> -#define XFS_PTAG_IFLUSH 0x00000001
> -#define XFS_PTAG_LOGRES 0x00000002
> -#define XFS_PTAG_AILDELETE 0x00000004
> -#define XFS_PTAG_ERROR_REPORT 0x00000008
> -#define XFS_PTAG_SHUTDOWN_CORRUPT 0x00000010
> -#define XFS_PTAG_SHUTDOWN_IOERROR 0x00000020
> -#define XFS_PTAG_SHUTDOWN_LOGERROR 0x00000040
> -#define XFS_PTAG_FSBLOCK_ZERO 0x00000080
> -#define XFS_PTAG_VERIFIER_ERROR 0x00000100
> +#define XFS_NO_PTAG 0u
> +#define XFS_PTAG_IFLUSH (1u << 0)
> +#define XFS_PTAG_LOGRES (1u << 1)
> +#define XFS_PTAG_AILDELETE (1u << 2)
> +#define XFS_PTAG_ERROR_REPORT (1u << 3)
> +#define XFS_PTAG_SHUTDOWN_CORRUPT (1u << 4)
> +#define XFS_PTAG_SHUTDOWN_IOERROR (1u << 5)
> +#define XFS_PTAG_SHUTDOWN_LOGERROR (1u << 6)
> +#define XFS_PTAG_FSBLOCK_ZERO (1u << 7)
> +#define XFS_PTAG_VERIFIER_ERROR (1u << 8)
>
> #define XFS_PTAG_STRINGS \
> { XFS_NO_PTAG, "none" }, \
> diff --git a/fs/xfs/xfs_message.c b/fs/xfs/xfs_message.c
> index bc66d95c8d4c..c5084dce75cd 100644
> --- a/fs/xfs/xfs_message.c
> +++ b/fs/xfs/xfs_message.c
> @@ -62,7 +62,7 @@ define_xfs_printk_level(xfs_debug, KERN_DEBUG);
> void
> xfs_alert_tag(
> const struct xfs_mount *mp,
> - int panic_tag,
> + uint32_t panic_tag,
> const char *fmt, ...)
> {
> struct va_format vaf;
> diff --git a/fs/xfs/xfs_message.h b/fs/xfs/xfs_message.h
> index bb9860ec9a93..dee98e9ccc3d 100644
> --- a/fs/xfs/xfs_message.h
> +++ b/fs/xfs/xfs_message.h
> @@ -11,7 +11,8 @@ void xfs_emerg(const struct xfs_mount *mp, const char *fmt, ...);
> extern __printf(2, 3)
> void xfs_alert(const struct xfs_mount *mp, const char *fmt, ...);
> extern __printf(3, 4)
> -void xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...);
> +void xfs_alert_tag(const struct xfs_mount *mp, uint32_t tag,
> + const char *fmt, ...);
> extern __printf(2, 3)
> void xfs_crit(const struct xfs_mount *mp, const char *fmt, ...);
> extern __printf(2, 3)
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 15/17] xfs: convert quota options flags to unsigned.
2022-04-11 0:31 ` [PATCH 15/17] xfs: convert quota options " Dave Chinner
@ 2022-04-12 7:26 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:26 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/libxfs/xfs_quota_defs.h | 45 +++++++++++++++++++++++-----------
> fs/xfs/xfs_trace.h | 16 ------------
> 2 files changed, 31 insertions(+), 30 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_quota_defs.h b/fs/xfs/libxfs/xfs_quota_defs.h
> index fdfe3cc6f15c..3076cd74fcaa 100644
> --- a/fs/xfs/libxfs/xfs_quota_defs.h
> +++ b/fs/xfs/libxfs/xfs_quota_defs.h
> @@ -73,29 +73,45 @@ typedef uint8_t xfs_dqtype_t;
> * to a single function. None of these XFS_QMOPT_* flags are meant to have
> * persistent values (ie. their values can and will change between versions)
> */
> -#define XFS_QMOPT_UQUOTA 0x0000004 /* user dquot requested */
> -#define XFS_QMOPT_PQUOTA 0x0000008 /* project dquot requested */
> -#define XFS_QMOPT_FORCE_RES 0x0000010 /* ignore quota limits */
> -#define XFS_QMOPT_SBVERSION 0x0000040 /* change superblock version num */
> -#define XFS_QMOPT_GQUOTA 0x0002000 /* group dquot requested */
> +#define XFS_QMOPT_UQUOTA (1u << 0) /* user dquot requested */
> +#define XFS_QMOPT_GQUOTA (1u << 1) /* group dquot requested */
> +#define XFS_QMOPT_PQUOTA (1u << 2) /* project dquot requested */
> +#define XFS_QMOPT_FORCE_RES (1u << 3) /* ignore quota limits */
> +#define XFS_QMOPT_SBVERSION (1u << 4) /* change superblock version num */
>
> /*
> * flags to xfs_trans_mod_dquot to indicate which field needs to be
> * modified.
> */
> -#define XFS_QMOPT_RES_REGBLKS 0x0010000
> -#define XFS_QMOPT_RES_RTBLKS 0x0020000
> -#define XFS_QMOPT_BCOUNT 0x0040000
> -#define XFS_QMOPT_ICOUNT 0x0080000
> -#define XFS_QMOPT_RTBCOUNT 0x0100000
> -#define XFS_QMOPT_DELBCOUNT 0x0200000
> -#define XFS_QMOPT_DELRTBCOUNT 0x0400000
> -#define XFS_QMOPT_RES_INOS 0x0800000
> +#define XFS_QMOPT_RES_REGBLKS (1u << 7)
> +#define XFS_QMOPT_RES_RTBLKS (1u << 8)
> +#define XFS_QMOPT_BCOUNT (1u << 9)
> +#define XFS_QMOPT_ICOUNT (1u << 10)
> +#define XFS_QMOPT_RTBCOUNT (1u << 11)
> +#define XFS_QMOPT_DELBCOUNT (1u << 12)
> +#define XFS_QMOPT_DELRTBCOUNT (1u << 13)
> +#define XFS_QMOPT_RES_INOS (1u << 14)
>
> /*
> * flags for dqalloc.
> */
> -#define XFS_QMOPT_INHERIT 0x1000000
> +#define XFS_QMOPT_INHERIT (1u << 31)
> +
> +#define XFS_QMOPT_FLAGS \
> + { XFS_QMOPT_UQUOTA, "UQUOTA" }, \
> + { XFS_QMOPT_PQUOTA, "PQUOTA" }, \
> + { XFS_QMOPT_FORCE_RES, "FORCE_RES" }, \
> + { XFS_QMOPT_SBVERSION, "SBVERSION" }, \
> + { XFS_QMOPT_GQUOTA, "GQUOTA" }, \
> + { XFS_QMOPT_INHERIT, "INHERIT" }, \
> + { XFS_QMOPT_RES_REGBLKS, "RES_REGBLKS" }, \
> + { XFS_QMOPT_RES_RTBLKS, "RES_RTBLKS" }, \
> + { XFS_QMOPT_BCOUNT, "BCOUNT" }, \
> + { XFS_QMOPT_ICOUNT, "ICOUNT" }, \
> + { XFS_QMOPT_RTBCOUNT, "RTBCOUNT" }, \
> + { XFS_QMOPT_DELBCOUNT, "DELBCOUNT" }, \
> + { XFS_QMOPT_DELRTBCOUNT, "DELRTBCOUNT" }, \
> + { XFS_QMOPT_RES_INOS, "RES_INOS" }
>
> /*
> * flags to xfs_trans_mod_dquot.
> @@ -114,6 +130,7 @@ typedef uint8_t xfs_dqtype_t;
> (XFS_QMOPT_UQUOTA | XFS_QMOPT_PQUOTA | XFS_QMOPT_GQUOTA)
> #define XFS_QMOPT_RESBLK_MASK (XFS_QMOPT_RES_REGBLKS | XFS_QMOPT_RES_RTBLKS)
>
> +
> extern xfs_failaddr_t xfs_dquot_verify(struct xfs_mount *mp,
> struct xfs_disk_dquot *ddq, xfs_dqid_t id);
> extern xfs_failaddr_t xfs_dqblk_verify(struct xfs_mount *mp,
> diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
> index 989ecda904db..b88bd45da27a 100644
> --- a/fs/xfs/xfs_trace.h
> +++ b/fs/xfs/xfs_trace.h
> @@ -1096,22 +1096,6 @@ DEFINE_DQUOT_EVENT(xfs_dqflush_done);
> DEFINE_DQUOT_EVENT(xfs_trans_apply_dquot_deltas_before);
> DEFINE_DQUOT_EVENT(xfs_trans_apply_dquot_deltas_after);
>
> -#define XFS_QMOPT_FLAGS \
> - { XFS_QMOPT_UQUOTA, "UQUOTA" }, \
> - { XFS_QMOPT_PQUOTA, "PQUOTA" }, \
> - { XFS_QMOPT_FORCE_RES, "FORCE_RES" }, \
> - { XFS_QMOPT_SBVERSION, "SBVERSION" }, \
> - { XFS_QMOPT_GQUOTA, "GQUOTA" }, \
> - { XFS_QMOPT_INHERIT, "INHERIT" }, \
> - { XFS_QMOPT_RES_REGBLKS, "RES_REGBLKS" }, \
> - { XFS_QMOPT_RES_RTBLKS, "RES_RTBLKS" }, \
> - { XFS_QMOPT_BCOUNT, "BCOUNT" }, \
> - { XFS_QMOPT_ICOUNT, "ICOUNT" }, \
> - { XFS_QMOPT_RTBCOUNT, "RTBCOUNT" }, \
> - { XFS_QMOPT_DELBCOUNT, "DELBCOUNT" }, \
> - { XFS_QMOPT_DELRTBCOUNT, "DELRTBCOUNT" }, \
> - { XFS_QMOPT_RES_INOS, "RES_INOS" }
> -
> TRACE_EVENT(xfs_trans_mod_dquot,
> TP_PROTO(struct xfs_trans *tp, struct xfs_dquot *dqp,
> unsigned int field, int64_t delta),
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 16/17] xfs: convert shutdown reasons to unsigned.
2022-04-11 0:31 ` [PATCH 16/17] xfs: convert shutdown reasons " Dave Chinner
@ 2022-04-12 7:27 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:27 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/xfs_fsops.c | 2 +-
> fs/xfs/xfs_log.c | 2 +-
> fs/xfs/xfs_log.h | 2 +-
> fs/xfs/xfs_mount.h | 11 +++++------
> 4 files changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
> index 68f74549fa22..e4cc6b7cae0f 100644
> --- a/fs/xfs/xfs_fsops.c
> +++ b/fs/xfs/xfs_fsops.c
> @@ -512,7 +512,7 @@ xfs_fs_goingdown(
> void
> xfs_do_force_shutdown(
> struct xfs_mount *mp,
> - int flags,
> + uint32_t flags,
> char *fname,
> int lnnum)
> {
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index 499e15b24215..3c216140a1c4 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -3829,7 +3829,7 @@ xlog_verify_iclog(
> bool
> xlog_force_shutdown(
> struct xlog *log,
> - int shutdown_flags)
> + uint32_t shutdown_flags)
> {
> bool log_error = (shutdown_flags & SHUTDOWN_LOG_IO_ERROR);
>
> diff --git a/fs/xfs/xfs_log.h b/fs/xfs/xfs_log.h
> index dc1b77b92fc1..3ecf891f34c4 100644
> --- a/fs/xfs/xfs_log.h
> +++ b/fs/xfs/xfs_log.h
> @@ -140,7 +140,7 @@ void xfs_log_clean(struct xfs_mount *mp);
> bool xfs_log_check_lsn(struct xfs_mount *, xfs_lsn_t);
>
> xfs_lsn_t xlog_grant_push_threshold(struct xlog *log, int need_bytes);
> -bool xlog_force_shutdown(struct xlog *log, int shutdown_flags);
> +bool xlog_force_shutdown(struct xlog *log, uint32_t shutdown_flags);
>
> void xlog_use_incompat_feat(struct xlog *log);
> void xlog_drop_incompat_feat(struct xlog *log);
> diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
> index f6dc19de8322..e5629e7c5aaf 100644
> --- a/fs/xfs/xfs_mount.h
> +++ b/fs/xfs/xfs_mount.h
> @@ -425,16 +425,15 @@ __XFS_IS_OPSTATE(blockgc_enabled, BLOCKGC_ENABLED)
> #define XFS_MAX_IO_LOG 30 /* 1G */
> #define XFS_MIN_IO_LOG PAGE_SHIFT
>
> -#define xfs_is_shutdown(mp) xfs_is_shutdown(mp)
> -void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname,
> +void xfs_do_force_shutdown(struct xfs_mount *mp, uint32_t flags, char *fname,
> int lnnum);
> #define xfs_force_shutdown(m,f) \
> xfs_do_force_shutdown(m, f, __FILE__, __LINE__)
>
> -#define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */
> -#define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */
> -#define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */
> -#define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */
> +#define SHUTDOWN_META_IO_ERROR (1u << 0) /* write attempt to metadata failed */
> +#define SHUTDOWN_LOG_IO_ERROR (1u << 1) /* write attempt to the log failed */
> +#define SHUTDOWN_FORCE_UMOUNT (1u << 2) /* shutdown from a forced unmount */
> +#define SHUTDOWN_CORRUPT_INCORE (1u << 3) /* corrupt in-memory structures */
>
> #define XFS_SHUTDOWN_STRINGS \
> { SHUTDOWN_META_IO_ERROR, "metadata_io" }, \
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 17/17] xfs: convert log ticket and iclog flags to unsigned.
2022-04-11 0:31 ` [PATCH 17/17] xfs: convert log ticket and iclog flags " Dave Chinner
@ 2022-04-12 7:27 ` Chandan Babu R
0 siblings, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-12 7:27 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/xfs_log_priv.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h
> index 401cdc400980..438df48a84c4 100644
> --- a/fs/xfs/xfs_log_priv.h
> +++ b/fs/xfs/xfs_log_priv.h
> @@ -51,8 +51,8 @@ enum xlog_iclog_state {
> /*
> * In core log flags
> */
> -#define XLOG_ICL_NEED_FLUSH (1 << 0) /* iclog needs REQ_PREFLUSH */
> -#define XLOG_ICL_NEED_FUA (1 << 1) /* iclog needs REQ_FUA */
> +#define XLOG_ICL_NEED_FLUSH (1u << 0) /* iclog needs REQ_PREFLUSH */
> +#define XLOG_ICL_NEED_FUA (1u << 1) /* iclog needs REQ_FUA */
>
> #define XLOG_ICL_STRINGS \
> { XLOG_ICL_NEED_FLUSH, "XLOG_ICL_NEED_FLUSH" }, \
> @@ -62,7 +62,7 @@ enum xlog_iclog_state {
> /*
> * Log ticket flags
> */
> -#define XLOG_TIC_PERM_RESERV 0x1 /* permanent reservation */
> +#define XLOG_TIC_PERM_RESERV (1u << 0) /* permanent reservation */
>
> #define XLOG_TIC_FLAGS \
> { XLOG_TIC_PERM_RESERV, "XLOG_TIC_PERM_RESERV" }
> @@ -165,7 +165,7 @@ typedef struct xlog_ticket {
> char t_ocnt; /* original count : 1 */
> char t_cnt; /* current count : 1 */
> char t_clientid; /* who does this belong to; : 1 */
> - char t_flags; /* properties of reservation : 1 */
> + uint8_t t_flags; /* properties of reservation : 1 */
>
> /* reservation array fields */
> uint t_res_num; /* num in array : 4 */
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 13/17] xfs: convert inode lock flags to unsigned.
2022-04-12 7:26 ` Chandan Babu R
@ 2022-04-12 8:43 ` Dave Chinner
2022-04-21 0:44 ` [PATCH 13/17 v2] " Dave Chinner
0 siblings, 1 reply; 40+ messages in thread
From: Dave Chinner @ 2022-04-12 8:43 UTC (permalink / raw)
To: Chandan Babu R; +Cc: linux-xfs
On Tue, Apr 12, 2022 at 12:56:30PM +0530, Chandan Babu R wrote:
> On 11 Apr 2022 at 06:01, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@redhat.com>
> >
> > 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> > fields to be unsigned.
> >
> > Signed-off-by: Dave Chinner <dchinner@redhat.com>
> > ---
>
> [...]
>
> > @@ -350,12 +350,12 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
> > */
> > #define XFS_IOLOCK_SHIFT 16
> > #define XFS_IOLOCK_MAX_SUBCLASS 3
> > -#define XFS_IOLOCK_DEP_MASK 0x000f0000
> > +#define XFS_IOLOCK_DEP_MASK 0x000f0000u
> >
> > #define XFS_MMAPLOCK_SHIFT 20
> > #define XFS_MMAPLOCK_NUMORDER 0
> > #define XFS_MMAPLOCK_MAX_SUBCLASS 3
> > -#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
> > +#define XFS_MMAPLOCK_DEP_MASK 0x00f00000u
> >
> > #define XFS_ILOCK_SHIFT 24
> > #define XFS_ILOCK_PARENT_VAL 5
>
> Why isn't the value of XFS_ILOCK_DEP_MASK marked as unsigned?
Because I'm blind as a bat at the best of times... :)
Good catch - I'll fix it up.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 40+ messages in thread
* [PATCH 13/17 v2] xfs: convert inode lock flags to unsigned.
2022-04-12 8:43 ` Dave Chinner
@ 2022-04-21 0:44 ` Dave Chinner
2022-04-21 3:07 ` Alli
2022-04-21 9:15 ` Chandan Babu R
0 siblings, 2 replies; 40+ messages in thread
From: Dave Chinner @ 2022-04-21 0:44 UTC (permalink / raw)
To: Chandan Babu R; +Cc: linux-xfs
From: Dave Chinner <dchinner@redhat.com>
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
V2:
- convert the missed ILOCK bit values and masks to unsigned.
fs/xfs/xfs_file.c | 12 ++++++------
fs/xfs/xfs_inode.c | 21 ++++++++++++---------
fs/xfs/xfs_inode.h | 24 ++++++++++++------------
3 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 5bddb1e9e0b3..f3e878408747 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -310,7 +310,7 @@ STATIC ssize_t
xfs_file_write_checks(
struct kiocb *iocb,
struct iov_iter *from,
- int *iolock)
+ unsigned int *iolock)
{
struct file *file = iocb->ki_filp;
struct inode *inode = file->f_mapping->host;
@@ -513,7 +513,7 @@ xfs_file_dio_write_aligned(
struct kiocb *iocb,
struct iov_iter *from)
{
- int iolock = XFS_IOLOCK_SHARED;
+ unsigned int iolock = XFS_IOLOCK_SHARED;
ssize_t ret;
ret = xfs_ilock_iocb(iocb, iolock);
@@ -566,7 +566,7 @@ xfs_file_dio_write_unaligned(
{
size_t isize = i_size_read(VFS_I(ip));
size_t count = iov_iter_count(from);
- int iolock = XFS_IOLOCK_SHARED;
+ unsigned int iolock = XFS_IOLOCK_SHARED;
unsigned int flags = IOMAP_DIO_OVERWRITE_ONLY;
ssize_t ret;
@@ -655,7 +655,7 @@ xfs_file_dax_write(
{
struct inode *inode = iocb->ki_filp->f_mapping->host;
struct xfs_inode *ip = XFS_I(inode);
- int iolock = XFS_IOLOCK_EXCL;
+ unsigned int iolock = XFS_IOLOCK_EXCL;
ssize_t ret, error = 0;
loff_t pos;
@@ -700,7 +700,7 @@ xfs_file_buffered_write(
struct xfs_inode *ip = XFS_I(inode);
ssize_t ret;
bool cleared_space = false;
- int iolock;
+ unsigned int iolock;
if (iocb->ki_flags & IOCB_NOWAIT)
return -EOPNOTSUPP;
@@ -1181,7 +1181,7 @@ xfs_dir_open(
struct file *file)
{
struct xfs_inode *ip = XFS_I(inode);
- int mode;
+ unsigned int mode;
int error;
error = xfs_file_open(inode, file);
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 9de6205fe134..5ea460f62201 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -416,10 +416,12 @@ xfs_lockdep_subclass_ok(
* parent locking. Care must be taken to ensure we don't overrun the subclass
* storage fields in the class mask we build.
*/
-static inline int
-xfs_lock_inumorder(int lock_mode, int subclass)
+static inline uint
+xfs_lock_inumorder(
+ uint lock_mode,
+ uint subclass)
{
- int class = 0;
+ uint class = 0;
ASSERT(!(lock_mode & (XFS_ILOCK_PARENT | XFS_ILOCK_RTBITMAP |
XFS_ILOCK_RTSUM)));
@@ -464,7 +466,10 @@ xfs_lock_inodes(
int inodes,
uint lock_mode)
{
- int attempts = 0, i, j, try_lock;
+ int attempts = 0;
+ uint i;
+ int j;
+ bool try_lock;
struct xfs_log_item *lp;
/*
@@ -489,9 +494,9 @@ xfs_lock_inodes(
} else if (lock_mode & XFS_MMAPLOCK_EXCL)
ASSERT(!(lock_mode & XFS_ILOCK_EXCL));
- try_lock = 0;
- i = 0;
again:
+ try_lock = false;
+ i = 0;
for (; i < inodes; i++) {
ASSERT(ips[i]);
@@ -506,7 +511,7 @@ xfs_lock_inodes(
for (j = (i - 1); j >= 0 && !try_lock; j--) {
lp = &ips[j]->i_itemp->ili_item;
if (lp && test_bit(XFS_LI_IN_AIL, &lp->li_flags))
- try_lock++;
+ try_lock = true;
}
}
@@ -546,8 +551,6 @@ xfs_lock_inodes(
if ((attempts % 5) == 0) {
delay(1); /* Don't just spin the CPU */
}
- i = 0;
- try_lock = 0;
goto again;
}
}
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
index 740ab13d1aa2..b67ab9f10cf9 100644
--- a/fs/xfs/xfs_inode.h
+++ b/fs/xfs/xfs_inode.h
@@ -278,12 +278,12 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
* Bit ranges: 1<<1 - 1<<16-1 -- iolock/ilock modes (bitfield)
* 1<<16 - 1<<32-1 -- lockdep annotation (integers)
*/
-#define XFS_IOLOCK_EXCL (1<<0)
-#define XFS_IOLOCK_SHARED (1<<1)
-#define XFS_ILOCK_EXCL (1<<2)
-#define XFS_ILOCK_SHARED (1<<3)
-#define XFS_MMAPLOCK_EXCL (1<<4)
-#define XFS_MMAPLOCK_SHARED (1<<5)
+#define XFS_IOLOCK_EXCL (1u << 0)
+#define XFS_IOLOCK_SHARED (1u << 1)
+#define XFS_ILOCK_EXCL (1u << 2)
+#define XFS_ILOCK_SHARED (1u << 3)
+#define XFS_MMAPLOCK_EXCL (1u << 4)
+#define XFS_MMAPLOCK_SHARED (1u << 5)
#define XFS_LOCK_MASK (XFS_IOLOCK_EXCL | XFS_IOLOCK_SHARED \
| XFS_ILOCK_EXCL | XFS_ILOCK_SHARED \
@@ -350,19 +350,19 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
*/
#define XFS_IOLOCK_SHIFT 16
#define XFS_IOLOCK_MAX_SUBCLASS 3
-#define XFS_IOLOCK_DEP_MASK 0x000f0000
+#define XFS_IOLOCK_DEP_MASK 0x000f0000u
#define XFS_MMAPLOCK_SHIFT 20
#define XFS_MMAPLOCK_NUMORDER 0
#define XFS_MMAPLOCK_MAX_SUBCLASS 3
-#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
+#define XFS_MMAPLOCK_DEP_MASK 0x00f00000u
#define XFS_ILOCK_SHIFT 24
-#define XFS_ILOCK_PARENT_VAL 5
+#define XFS_ILOCK_PARENT_VAL 5u
#define XFS_ILOCK_MAX_SUBCLASS (XFS_ILOCK_PARENT_VAL - 1)
-#define XFS_ILOCK_RTBITMAP_VAL 6
-#define XFS_ILOCK_RTSUM_VAL 7
-#define XFS_ILOCK_DEP_MASK 0xff000000
+#define XFS_ILOCK_RTBITMAP_VAL 6u
+#define XFS_ILOCK_RTSUM_VAL 7u
+#define XFS_ILOCK_DEP_MASK 0xff000000u
#define XFS_ILOCK_PARENT (XFS_ILOCK_PARENT_VAL << XFS_ILOCK_SHIFT)
#define XFS_ILOCK_RTBITMAP (XFS_ILOCK_RTBITMAP_VAL << XFS_ILOCK_SHIFT)
#define XFS_ILOCK_RTSUM (XFS_ILOCK_RTSUM_VAL << XFS_ILOCK_SHIFT)
^ permalink raw reply related [flat|nested] 40+ messages in thread
* Re: [PATCH 13/17 v2] xfs: convert inode lock flags to unsigned.
2022-04-21 0:44 ` [PATCH 13/17 v2] " Dave Chinner
@ 2022-04-21 3:07 ` Alli
2022-04-21 9:15 ` Chandan Babu R
1 sibling, 0 replies; 40+ messages in thread
From: Alli @ 2022-04-21 3:07 UTC (permalink / raw)
To: Dave Chinner, Chandan Babu R; +Cc: linux-xfs
On Thu, 2022-04-21 at 10:44 +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> V2:
> - convert the missed ILOCK bit values and masks to unsigned.
>
Looks ok now
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
> fs/xfs/xfs_file.c | 12 ++++++------
> fs/xfs/xfs_inode.c | 21 ++++++++++++---------
> fs/xfs/xfs_inode.h | 24 ++++++++++++------------
> 3 files changed, 30 insertions(+), 27 deletions(-)
>
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index 5bddb1e9e0b3..f3e878408747 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -310,7 +310,7 @@ STATIC ssize_t
> xfs_file_write_checks(
> struct kiocb *iocb,
> struct iov_iter *from,
> - int *iolock)
> + unsigned int *iolock)
> {
> struct file *file = iocb->ki_filp;
> struct inode *inode = file->f_mapping->host;
> @@ -513,7 +513,7 @@ xfs_file_dio_write_aligned(
> struct kiocb *iocb,
> struct iov_iter *from)
> {
> - int iolock = XFS_IOLOCK_SHARED;
> + unsigned int iolock = XFS_IOLOCK_SHARED;
> ssize_t ret;
>
> ret = xfs_ilock_iocb(iocb, iolock);
> @@ -566,7 +566,7 @@ xfs_file_dio_write_unaligned(
> {
> size_t isize = i_size_read(VFS_I(ip));
> size_t count = iov_iter_count(from);
> - int iolock = XFS_IOLOCK_SHARED;
> + unsigned int iolock = XFS_IOLOCK_SHARED;
> unsigned int flags = IOMAP_DIO_OVERWRITE_ONLY;
> ssize_t ret;
>
> @@ -655,7 +655,7 @@ xfs_file_dax_write(
> {
> struct inode *inode = iocb->ki_filp->f_mapping-
> >host;
> struct xfs_inode *ip = XFS_I(inode);
> - int iolock = XFS_IOLOCK_EXCL;
> + unsigned int iolock = XFS_IOLOCK_EXCL;
> ssize_t ret, error = 0;
> loff_t pos;
>
> @@ -700,7 +700,7 @@ xfs_file_buffered_write(
> struct xfs_inode *ip = XFS_I(inode);
> ssize_t ret;
> bool cleared_space = false;
> - int iolock;
> + unsigned int iolock;
>
> if (iocb->ki_flags & IOCB_NOWAIT)
> return -EOPNOTSUPP;
> @@ -1181,7 +1181,7 @@ xfs_dir_open(
> struct file *file)
> {
> struct xfs_inode *ip = XFS_I(inode);
> - int mode;
> + unsigned int mode;
> int error;
>
> error = xfs_file_open(inode, file);
> diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> index 9de6205fe134..5ea460f62201 100644
> --- a/fs/xfs/xfs_inode.c
> +++ b/fs/xfs/xfs_inode.c
> @@ -416,10 +416,12 @@ xfs_lockdep_subclass_ok(
> * parent locking. Care must be taken to ensure we don't overrun the
> subclass
> * storage fields in the class mask we build.
> */
> -static inline int
> -xfs_lock_inumorder(int lock_mode, int subclass)
> +static inline uint
> +xfs_lock_inumorder(
> + uint lock_mode,
> + uint subclass)
> {
> - int class = 0;
> + uint class = 0;
>
> ASSERT(!(lock_mode & (XFS_ILOCK_PARENT | XFS_ILOCK_RTBITMAP |
> XFS_ILOCK_RTSUM)));
> @@ -464,7 +466,10 @@ xfs_lock_inodes(
> int inodes,
> uint lock_mode)
> {
> - int attempts = 0, i, j, try_lock;
> + int attempts = 0;
> + uint i;
> + int j;
> + bool try_lock;
> struct xfs_log_item *lp;
>
> /*
> @@ -489,9 +494,9 @@ xfs_lock_inodes(
> } else if (lock_mode & XFS_MMAPLOCK_EXCL)
> ASSERT(!(lock_mode & XFS_ILOCK_EXCL));
>
> - try_lock = 0;
> - i = 0;
> again:
> + try_lock = false;
> + i = 0;
> for (; i < inodes; i++) {
> ASSERT(ips[i]);
>
> @@ -506,7 +511,7 @@ xfs_lock_inodes(
> for (j = (i - 1); j >= 0 && !try_lock; j--) {
> lp = &ips[j]->i_itemp->ili_item;
> if (lp && test_bit(XFS_LI_IN_AIL, &lp-
> >li_flags))
> - try_lock++;
> + try_lock = true;
> }
> }
>
> @@ -546,8 +551,6 @@ xfs_lock_inodes(
> if ((attempts % 5) == 0) {
> delay(1); /* Don't just spin the CPU */
> }
> - i = 0;
> - try_lock = 0;
> goto again;
> }
> }
> diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
> index 740ab13d1aa2..b67ab9f10cf9 100644
> --- a/fs/xfs/xfs_inode.h
> +++ b/fs/xfs/xfs_inode.h
> @@ -278,12 +278,12 @@ static inline bool xfs_inode_has_bigtime(struct
> xfs_inode *ip)
> * Bit ranges: 1<<1 - 1<<16-1 -- iolock/ilock modes
> (bitfield)
> * 1<<16 - 1<<32-1 -- lockdep annotation (integers)
> */
> -#define XFS_IOLOCK_EXCL (1<<0)
> -#define XFS_IOLOCK_SHARED (1<<1)
> -#define XFS_ILOCK_EXCL (1<<2)
> -#define XFS_ILOCK_SHARED (1<<3)
> -#define XFS_MMAPLOCK_EXCL (1<<4)
> -#define XFS_MMAPLOCK_SHARED (1<<5)
> +#define XFS_IOLOCK_EXCL (1u << 0)
> +#define XFS_IOLOCK_SHARED (1u << 1)
> +#define XFS_ILOCK_EXCL (1u << 2)
> +#define XFS_ILOCK_SHARED (1u << 3)
> +#define XFS_MMAPLOCK_EXCL (1u << 4)
> +#define XFS_MMAPLOCK_SHARED (1u << 5)
>
> #define XFS_LOCK_MASK (XFS_IOLOCK_EXCL |
> XFS_IOLOCK_SHARED \
> | XFS_ILOCK_EXCL | XFS_ILOCK_SHARED \
> @@ -350,19 +350,19 @@ static inline bool xfs_inode_has_bigtime(struct
> xfs_inode *ip)
> */
> #define XFS_IOLOCK_SHIFT 16
> #define XFS_IOLOCK_MAX_SUBCLASS 3
> -#define XFS_IOLOCK_DEP_MASK 0x000f0000
> +#define XFS_IOLOCK_DEP_MASK 0x000f0000u
>
> #define XFS_MMAPLOCK_SHIFT 20
> #define XFS_MMAPLOCK_NUMORDER 0
> #define XFS_MMAPLOCK_MAX_SUBCLASS 3
> -#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
> +#define XFS_MMAPLOCK_DEP_MASK 0x00f00000u
>
> #define XFS_ILOCK_SHIFT 24
> -#define XFS_ILOCK_PARENT_VAL 5
> +#define XFS_ILOCK_PARENT_VAL 5u
> #define XFS_ILOCK_MAX_SUBCLASS (XFS_ILOCK_PARENT_VAL -
> 1)
> -#define XFS_ILOCK_RTBITMAP_VAL 6
> -#define XFS_ILOCK_RTSUM_VAL 7
> -#define XFS_ILOCK_DEP_MASK 0xff000000
> +#define XFS_ILOCK_RTBITMAP_VAL 6u
> +#define XFS_ILOCK_RTSUM_VAL 7u
> +#define XFS_ILOCK_DEP_MASK 0xff000000u
> #define XFS_ILOCK_PARENT (XFS_ILOCK_PARENT_VAL <<
> XFS_ILOCK_SHIFT)
> #define XFS_ILOCK_RTBITMAP (XFS_ILOCK_RTBITMAP_V
> AL << XFS_ILOCK_SHIFT)
> #define XFS_ILOCK_RTSUM (XFS_ILOCK_RTSUM_VAL
> << XFS_ILOCK_SHIFT)
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [PATCH 13/17 v2] xfs: convert inode lock flags to unsigned.
2022-04-21 0:44 ` [PATCH 13/17 v2] " Dave Chinner
2022-04-21 3:07 ` Alli
@ 2022-04-21 9:15 ` Chandan Babu R
1 sibling, 0 replies; 40+ messages in thread
From: Chandan Babu R @ 2022-04-21 9:15 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
On 21 Apr 2022 at 06:14, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
>
Looks good.
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> V2:
> - convert the missed ILOCK bit values and masks to unsigned.
>
> fs/xfs/xfs_file.c | 12 ++++++------
> fs/xfs/xfs_inode.c | 21 ++++++++++++---------
> fs/xfs/xfs_inode.h | 24 ++++++++++++------------
> 3 files changed, 30 insertions(+), 27 deletions(-)
>
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index 5bddb1e9e0b3..f3e878408747 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -310,7 +310,7 @@ STATIC ssize_t
> xfs_file_write_checks(
> struct kiocb *iocb,
> struct iov_iter *from,
> - int *iolock)
> + unsigned int *iolock)
> {
> struct file *file = iocb->ki_filp;
> struct inode *inode = file->f_mapping->host;
> @@ -513,7 +513,7 @@ xfs_file_dio_write_aligned(
> struct kiocb *iocb,
> struct iov_iter *from)
> {
> - int iolock = XFS_IOLOCK_SHARED;
> + unsigned int iolock = XFS_IOLOCK_SHARED;
> ssize_t ret;
>
> ret = xfs_ilock_iocb(iocb, iolock);
> @@ -566,7 +566,7 @@ xfs_file_dio_write_unaligned(
> {
> size_t isize = i_size_read(VFS_I(ip));
> size_t count = iov_iter_count(from);
> - int iolock = XFS_IOLOCK_SHARED;
> + unsigned int iolock = XFS_IOLOCK_SHARED;
> unsigned int flags = IOMAP_DIO_OVERWRITE_ONLY;
> ssize_t ret;
>
> @@ -655,7 +655,7 @@ xfs_file_dax_write(
> {
> struct inode *inode = iocb->ki_filp->f_mapping->host;
> struct xfs_inode *ip = XFS_I(inode);
> - int iolock = XFS_IOLOCK_EXCL;
> + unsigned int iolock = XFS_IOLOCK_EXCL;
> ssize_t ret, error = 0;
> loff_t pos;
>
> @@ -700,7 +700,7 @@ xfs_file_buffered_write(
> struct xfs_inode *ip = XFS_I(inode);
> ssize_t ret;
> bool cleared_space = false;
> - int iolock;
> + unsigned int iolock;
>
> if (iocb->ki_flags & IOCB_NOWAIT)
> return -EOPNOTSUPP;
> @@ -1181,7 +1181,7 @@ xfs_dir_open(
> struct file *file)
> {
> struct xfs_inode *ip = XFS_I(inode);
> - int mode;
> + unsigned int mode;
> int error;
>
> error = xfs_file_open(inode, file);
> diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> index 9de6205fe134..5ea460f62201 100644
> --- a/fs/xfs/xfs_inode.c
> +++ b/fs/xfs/xfs_inode.c
> @@ -416,10 +416,12 @@ xfs_lockdep_subclass_ok(
> * parent locking. Care must be taken to ensure we don't overrun the subclass
> * storage fields in the class mask we build.
> */
> -static inline int
> -xfs_lock_inumorder(int lock_mode, int subclass)
> +static inline uint
> +xfs_lock_inumorder(
> + uint lock_mode,
> + uint subclass)
> {
> - int class = 0;
> + uint class = 0;
>
> ASSERT(!(lock_mode & (XFS_ILOCK_PARENT | XFS_ILOCK_RTBITMAP |
> XFS_ILOCK_RTSUM)));
> @@ -464,7 +466,10 @@ xfs_lock_inodes(
> int inodes,
> uint lock_mode)
> {
> - int attempts = 0, i, j, try_lock;
> + int attempts = 0;
> + uint i;
> + int j;
> + bool try_lock;
> struct xfs_log_item *lp;
>
> /*
> @@ -489,9 +494,9 @@ xfs_lock_inodes(
> } else if (lock_mode & XFS_MMAPLOCK_EXCL)
> ASSERT(!(lock_mode & XFS_ILOCK_EXCL));
>
> - try_lock = 0;
> - i = 0;
> again:
> + try_lock = false;
> + i = 0;
> for (; i < inodes; i++) {
> ASSERT(ips[i]);
>
> @@ -506,7 +511,7 @@ xfs_lock_inodes(
> for (j = (i - 1); j >= 0 && !try_lock; j--) {
> lp = &ips[j]->i_itemp->ili_item;
> if (lp && test_bit(XFS_LI_IN_AIL, &lp->li_flags))
> - try_lock++;
> + try_lock = true;
> }
> }
>
> @@ -546,8 +551,6 @@ xfs_lock_inodes(
> if ((attempts % 5) == 0) {
> delay(1); /* Don't just spin the CPU */
> }
> - i = 0;
> - try_lock = 0;
> goto again;
> }
> }
> diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
> index 740ab13d1aa2..b67ab9f10cf9 100644
> --- a/fs/xfs/xfs_inode.h
> +++ b/fs/xfs/xfs_inode.h
> @@ -278,12 +278,12 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
> * Bit ranges: 1<<1 - 1<<16-1 -- iolock/ilock modes (bitfield)
> * 1<<16 - 1<<32-1 -- lockdep annotation (integers)
> */
> -#define XFS_IOLOCK_EXCL (1<<0)
> -#define XFS_IOLOCK_SHARED (1<<1)
> -#define XFS_ILOCK_EXCL (1<<2)
> -#define XFS_ILOCK_SHARED (1<<3)
> -#define XFS_MMAPLOCK_EXCL (1<<4)
> -#define XFS_MMAPLOCK_SHARED (1<<5)
> +#define XFS_IOLOCK_EXCL (1u << 0)
> +#define XFS_IOLOCK_SHARED (1u << 1)
> +#define XFS_ILOCK_EXCL (1u << 2)
> +#define XFS_ILOCK_SHARED (1u << 3)
> +#define XFS_MMAPLOCK_EXCL (1u << 4)
> +#define XFS_MMAPLOCK_SHARED (1u << 5)
>
> #define XFS_LOCK_MASK (XFS_IOLOCK_EXCL | XFS_IOLOCK_SHARED \
> | XFS_ILOCK_EXCL | XFS_ILOCK_SHARED \
> @@ -350,19 +350,19 @@ static inline bool xfs_inode_has_bigtime(struct xfs_inode *ip)
> */
> #define XFS_IOLOCK_SHIFT 16
> #define XFS_IOLOCK_MAX_SUBCLASS 3
> -#define XFS_IOLOCK_DEP_MASK 0x000f0000
> +#define XFS_IOLOCK_DEP_MASK 0x000f0000u
>
> #define XFS_MMAPLOCK_SHIFT 20
> #define XFS_MMAPLOCK_NUMORDER 0
> #define XFS_MMAPLOCK_MAX_SUBCLASS 3
> -#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
> +#define XFS_MMAPLOCK_DEP_MASK 0x00f00000u
>
> #define XFS_ILOCK_SHIFT 24
> -#define XFS_ILOCK_PARENT_VAL 5
> +#define XFS_ILOCK_PARENT_VAL 5u
> #define XFS_ILOCK_MAX_SUBCLASS (XFS_ILOCK_PARENT_VAL - 1)
> -#define XFS_ILOCK_RTBITMAP_VAL 6
> -#define XFS_ILOCK_RTSUM_VAL 7
> -#define XFS_ILOCK_DEP_MASK 0xff000000
> +#define XFS_ILOCK_RTBITMAP_VAL 6u
> +#define XFS_ILOCK_RTSUM_VAL 7u
> +#define XFS_ILOCK_DEP_MASK 0xff000000u
> #define XFS_ILOCK_PARENT (XFS_ILOCK_PARENT_VAL << XFS_ILOCK_SHIFT)
> #define XFS_ILOCK_RTBITMAP (XFS_ILOCK_RTBITMAP_VAL << XFS_ILOCK_SHIFT)
> #define XFS_ILOCK_RTSUM (XFS_ILOCK_RTSUM_VAL << XFS_ILOCK_SHIFT)
--
chandan
^ permalink raw reply [flat|nested] 40+ messages in thread
end of thread, other threads:[~2022-04-21 9:16 UTC | newest]
Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-11 0:31 [PATCH 00/17] xfs: unsigned flags conversion for c11 Dave Chinner
2022-04-11 0:31 ` [PATCH 01/17] xfs: convert buffer flags to unsigned Dave Chinner
2022-04-11 10:05 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 02/17] xfs: convert attr type " Dave Chinner
2022-04-11 10:23 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 03/17] xfs: convert scrub " Dave Chinner
2022-04-11 10:33 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 04/17] xfs: convert bmap extent " Dave Chinner
2022-04-11 10:42 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 05/17] xfs: convert bmapi " Dave Chinner
2022-04-11 12:53 ` Chandan Babu R
2022-04-11 13:44 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 06/17] xfs: convert AGF log " Dave Chinner
2022-04-11 13:27 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 07/17] xfs: convert AGI " Dave Chinner
2022-04-11 13:49 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 08/17] xfs: convert btree buffer " Dave Chinner
2022-04-11 14:03 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 09/17] xfs: convert buffer log item " Dave Chinner
2022-04-12 7:25 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 10/17] xfs: convert da btree operations " Dave Chinner
2022-04-12 7:25 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 11/17] xfs: convert dquot " Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 12/17] xfs: convert log item tracepoint " Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 13/17] xfs: convert inode lock " Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-12 8:43 ` Dave Chinner
2022-04-21 0:44 ` [PATCH 13/17 v2] " Dave Chinner
2022-04-21 3:07 ` Alli
2022-04-21 9:15 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 14/17] xfs: convert ptag " Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 15/17] xfs: convert quota options " Dave Chinner
2022-04-12 7:26 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 16/17] xfs: convert shutdown reasons " Dave Chinner
2022-04-12 7:27 ` Chandan Babu R
2022-04-11 0:31 ` [PATCH 17/17] xfs: convert log ticket and iclog flags " Dave Chinner
2022-04-12 7:27 ` Chandan Babu R
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.