[PATCH 2/2] linux/fs.h: add types and routines needed for SquashFS
yegorslists at googlemail.com
yegorslists at googlemail.com
Thu Feb 11 06:53:04 PST 2016
From: Yegor Yefremov <yegorslists at googlemail.com>
Signed-off-by: Yegor Yefremov <yegorslists at googlemail.com>
---
include/linux/fs.h | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 7e9886a..e11a602 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -19,6 +19,26 @@
#endif
/*
+ * File types
+ *
+ * NOTE! These match bits 12..15 of stat.st_mode
+ * (ie "(i_mode >> 12) & 15").
+ */
+#define DT_UNKNOWN 0
+#define DT_FIFO 1
+#define DT_CHR 2
+#define DT_DIR 4
+#define DT_BLK 6
+#define DT_REG 8
+#define DT_LNK 10
+#define DT_SOCK 12
+#define DT_WHT 14
+
+struct dir_context {
+ loff_t pos;
+};
+
+/*
* These are the fs-independent mount-flags: up to 32 flags are supported
*/
#define MS_RDONLY 1 /* Mount read-only */
@@ -74,6 +94,7 @@ struct inode {
struct timespec i_mtime;
struct timespec i_ctime;
unsigned int i_blkbits;
+ blkcnt_t i_blocks;
unsigned short i_bytes;
umode_t i_mode;
spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */
@@ -194,6 +215,7 @@ struct file_system_type {
struct file {
struct path f_path;
+ struct inode *f_inode; /* cached value */
#define f_dentry f_path.dentry
#define f_vfsmnt f_path.mnt
const struct file_operations *f_op;
@@ -361,4 +383,9 @@ struct file {
#define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES)
#define I_DIRTY_ALL (I_DIRTY | I_DIRTY_TIME)
+static inline loff_t i_size_read(const struct inode *inode)
+{
+ return inode->i_size;
+}
+
#endif /* _LINUX_FS_H */
--
2.1.4
More information about the barebox
mailing list