|
@@ -403,11 +403,19 @@ static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
|
|
|
|
|
|
/* Flags in jbd_inode->i_flags */
|
|
/* Flags in jbd_inode->i_flags */
|
|
#define __JI_COMMIT_RUNNING 0
|
|
#define __JI_COMMIT_RUNNING 0
|
|
-/* Commit of the inode data in progress. We use this flag to protect us from
|
|
|
|
|
|
+#define __JI_WRITE_DATA 1
|
|
|
|
+#define __JI_WAIT_DATA 2
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Commit of the inode data in progress. We use this flag to protect us from
|
|
* concurrent deletion of inode. We cannot use reference to inode for this
|
|
* concurrent deletion of inode. We cannot use reference to inode for this
|
|
* since we cannot afford doing last iput() on behalf of kjournald
|
|
* since we cannot afford doing last iput() on behalf of kjournald
|
|
*/
|
|
*/
|
|
#define JI_COMMIT_RUNNING (1 << __JI_COMMIT_RUNNING)
|
|
#define JI_COMMIT_RUNNING (1 << __JI_COMMIT_RUNNING)
|
|
|
|
+/* Write allocated dirty buffers in this inode before commit */
|
|
|
|
+#define JI_WRITE_DATA (1 << __JI_WRITE_DATA)
|
|
|
|
+/* Wait for outstanding data writes for this inode before commit */
|
|
|
|
+#define JI_WAIT_DATA (1 << __JI_WAIT_DATA)
|
|
|
|
|
|
/**
|
|
/**
|
|
* struct jbd_inode is the structure linking inodes in ordered mode
|
|
* struct jbd_inode is the structure linking inodes in ordered mode
|
|
@@ -1270,7 +1278,8 @@ extern int jbd2_journal_clear_err (journal_t *);
|
|
extern int jbd2_journal_bmap(journal_t *, unsigned long, unsigned long long *);
|
|
extern int jbd2_journal_bmap(journal_t *, unsigned long, unsigned long long *);
|
|
extern int jbd2_journal_force_commit(journal_t *);
|
|
extern int jbd2_journal_force_commit(journal_t *);
|
|
extern int jbd2_journal_force_commit_nested(journal_t *);
|
|
extern int jbd2_journal_force_commit_nested(journal_t *);
|
|
-extern int jbd2_journal_file_inode(handle_t *handle, struct jbd2_inode *inode);
|
|
|
|
|
|
+extern int jbd2_journal_inode_add_write(handle_t *handle, struct jbd2_inode *inode);
|
|
|
|
+extern int jbd2_journal_inode_add_wait(handle_t *handle, struct jbd2_inode *inode);
|
|
extern int jbd2_journal_begin_ordered_truncate(journal_t *journal,
|
|
extern int jbd2_journal_begin_ordered_truncate(journal_t *journal,
|
|
struct jbd2_inode *inode, loff_t new_size);
|
|
struct jbd2_inode *inode, loff_t new_size);
|
|
extern void jbd2_journal_init_jbd_inode(struct jbd2_inode *jinode, struct inode *inode);
|
|
extern void jbd2_journal_init_jbd_inode(struct jbd2_inode *jinode, struct inode *inode);
|