Skip to content

Commit

Permalink
udf: Convert UDF_SB(sb)->s_flags to use bitops
Browse files Browse the repository at this point in the history
Use atomic bitops to manipulate with sb flags to make manipulation safe
without any locking.

Signed-off-by: Jan Kara <jack@suse.cz>
  • Loading branch information
Jan Kara committed Jan 6, 2011
1 parent fab3c85 commit f2a6cc1
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions fs/udf/udf_sb.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand All @@ -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 */

0 comments on commit f2a6cc1

Please sign in to comment.