diff options
author | Jan Kara <jack@suse.cz> | 2010-10-20 17:25:59 +0200 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2011-01-06 17:03:54 +0100 |
commit | f2a6cc1f146465e13f31d9163d542d1facf4e203 (patch) | |
tree | 85dd319f9a1ebef0a33114392b5dbfa2f39b3aeb | |
parent | fs/udf: Add printf format/argument verification (diff) | |
download | linux-f2a6cc1f146465e13f31d9163d542d1facf4e203.tar.xz linux-f2a6cc1f146465e13f31d9163d542d1facf4e203.zip |
udf: Convert UDF_SB(sb)->s_flags to use bitops
Use atomic bitops to manipulate with sb flags to make manipulation safe
without any locking.
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | fs/udf/udf_sb.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/fs/udf/udf_sb.h b/fs/udf/udf_sb.h index d113b72c2768..9f38a6ca4fd5 100644 --- a/fs/udf/udf_sb.h +++ b/fs/udf/udf_sb.h @@ -2,6 +2,7 @@ #define __LINUX_UDF_SB_H #include <linux/mutex.h> +#include <linux/bitops.h> /* Since UDF 2.01 is ISO 13346 based... */ #define UDF_SUPER_MAGIC 0x15013346 @@ -139,7 +140,7 @@ struct udf_sb_info { __u16 s_udfrev; /* Miscellaneous flags */ - __u32 s_flags; + unsigned long s_flags; /* Encoding info */ struct nls_table *s_nls_map; @@ -161,8 +162,19 @@ struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct udf_sb_info *sbi); int udf_compute_nr_groups(struct super_block *sb, u32 partition); -#define UDF_QUERY_FLAG(X,Y) ( UDF_SB(X)->s_flags & ( 1 << (Y) ) ) -#define UDF_SET_FLAG(X,Y) ( UDF_SB(X)->s_flags |= ( 1 << (Y) ) ) -#define UDF_CLEAR_FLAG(X,Y) ( UDF_SB(X)->s_flags &= ~( 1 << (Y) ) ) +static inline int UDF_QUERY_FLAG(struct super_block *sb, int flag) +{ + return test_bit(flag, &UDF_SB(sb)->s_flags); +} + +static inline void UDF_SET_FLAG(struct super_block *sb, int flag) +{ + set_bit(flag, &UDF_SB(sb)->s_flags); +} + +static inline void UDF_CLEAR_FLAG(struct super_block *sb, int flag) +{ + clear_bit(flag, &UDF_SB(sb)->s_flags); +} #endif /* __LINUX_UDF_SB_H */ |