nilfs2: add struct nilfs_suinfo_update and flags
Add the nilfs_suinfo_update structure, which contains the information needed to update one segment usage entry. The flags specify, which fields need to be updated. Signed-off-by: Andreas Rohner <andreas.rohner@gmx.net> Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e21269355e
commit
90ccf7dde9
@ -710,6 +710,48 @@ static inline int nilfs_suinfo_clean(const struct nilfs_suinfo *si)
|
||||
}
|
||||
|
||||
/* ioctl */
|
||||
/**
|
||||
* nilfs_suinfo_update - segment usage information update
|
||||
* @sup_segnum: segment number
|
||||
* @sup_flags: flags for which fields are active in sup_sui
|
||||
* @sup_reserved: reserved necessary for alignment
|
||||
* @sup_sui: segment usage information
|
||||
*/
|
||||
struct nilfs_suinfo_update {
|
||||
__u64 sup_segnum;
|
||||
__u32 sup_flags;
|
||||
__u32 sup_reserved;
|
||||
struct nilfs_suinfo sup_sui;
|
||||
};
|
||||
|
||||
enum {
|
||||
NILFS_SUINFO_UPDATE_LASTMOD,
|
||||
NILFS_SUINFO_UPDATE_NBLOCKS,
|
||||
NILFS_SUINFO_UPDATE_FLAGS,
|
||||
__NR_NILFS_SUINFO_UPDATE_FIELDS,
|
||||
};
|
||||
|
||||
#define NILFS_SUINFO_UPDATE_FNS(flag, name) \
|
||||
static inline void \
|
||||
nilfs_suinfo_update_set_##name(struct nilfs_suinfo_update *sup) \
|
||||
{ \
|
||||
sup->sup_flags |= 1UL << NILFS_SUINFO_UPDATE_##flag; \
|
||||
} \
|
||||
static inline void \
|
||||
nilfs_suinfo_update_clear_##name(struct nilfs_suinfo_update *sup) \
|
||||
{ \
|
||||
sup->sup_flags &= ~(1UL << NILFS_SUINFO_UPDATE_##flag); \
|
||||
} \
|
||||
static inline int \
|
||||
nilfs_suinfo_update_##name(const struct nilfs_suinfo_update *sup) \
|
||||
{ \
|
||||
return !!(sup->sup_flags & (1UL << NILFS_SUINFO_UPDATE_##flag));\
|
||||
}
|
||||
|
||||
NILFS_SUINFO_UPDATE_FNS(LASTMOD, lastmod)
|
||||
NILFS_SUINFO_UPDATE_FNS(NBLOCKS, nblocks)
|
||||
NILFS_SUINFO_UPDATE_FNS(FLAGS, flags)
|
||||
|
||||
enum {
|
||||
NILFS_CHECKPOINT,
|
||||
NILFS_SNAPSHOT,
|
||||
|
Loading…
Reference in New Issue
Block a user