[PATCH v7 03/13] erofs-utils: lib: add erofs_inode_is_whiteout() helper
Gao Xiang
hsiangkao at linux.alibaba.com
Sun Sep 10 02:32:30 AEST 2023
From: Jingbo Xu <jefflexu at linux.alibaba.com>
Add erofs_inode_is_whiteout() helper to check if a given inode is
a whiteout.
Signed-off-by: Jingbo Xu <jefflexu at linux.alibaba.com>
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
include/erofs/internal.h | 7 +++++++
lib/tar.c | 2 --
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/include/erofs/internal.h b/include/erofs/internal.h
index 382024a..ac82336 100644
--- a/include/erofs/internal.h
+++ b/include/erofs/internal.h
@@ -20,6 +20,7 @@ typedef unsigned short umode_t;
#include "erofs_fs.h"
#include <fcntl.h>
#include <sys/types.h> /* for off_t definition */
+#include <sys/stat.h> /* for S_ISCHR definition */
#include <stdio.h>
#ifndef PATH_MAX
@@ -423,6 +424,12 @@ static inline u32 erofs_crc32c(u32 crc, const u8 *in, size_t len)
return crc;
}
+#define EROFS_WHITEOUT_DEV 0
+static inline bool erofs_inode_is_whiteout(struct erofs_inode *inode)
+{
+ return S_ISCHR(inode->i_mode) && inode->u.i_rdev == EROFS_WHITEOUT_DEV;
+}
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/tar.c b/lib/tar.c
index 5b63cf5..c5dbef0 100644
--- a/lib/tar.c
+++ b/lib/tar.c
@@ -19,8 +19,6 @@
#include "erofs/xattr.h"
#include "erofs/blobchunk.h"
-#define EROFS_WHITEOUT_DEV 0
-
static char erofs_libbuf[16384];
struct tar_header {
--
2.24.4
More information about the Linux-erofs
mailing list