|
@@ -265,7 +265,7 @@ int __ext4_handle_dirty_super(const char *where, unsigned int line,
|
|
|
__ext4_handle_dirty_super(__func__, __LINE__, (handle), (sb))
|
|
|
|
|
|
handle_t *__ext4_journal_start_sb(struct super_block *sb, unsigned int line,
|
|
|
- int type, int nblocks);
|
|
|
+ int type, int blocks, int rsv_blocks);
|
|
|
int __ext4_journal_stop(const char *where, unsigned int line, handle_t *handle);
|
|
|
|
|
|
#define EXT4_NOJOURNAL_MAX_REF_COUNT ((unsigned long) 4096)
|
|
@@ -300,21 +300,37 @@ static inline int ext4_handle_has_enough_credits(handle_t *handle, int needed)
|
|
|
}
|
|
|
|
|
|
#define ext4_journal_start_sb(sb, type, nblocks) \
|
|
|
- __ext4_journal_start_sb((sb), __LINE__, (type), (nblocks))
|
|
|
+ __ext4_journal_start_sb((sb), __LINE__, (type), (nblocks), 0)
|
|
|
|
|
|
#define ext4_journal_start(inode, type, nblocks) \
|
|
|
- __ext4_journal_start((inode), __LINE__, (type), (nblocks))
|
|
|
+ __ext4_journal_start((inode), __LINE__, (type), (nblocks), 0)
|
|
|
+
|
|
|
+#define ext4_journal_start_with_reserve(inode, type, blocks, rsv_blocks) \
|
|
|
+ __ext4_journal_start((inode), __LINE__, (type), (blocks), (rsv_blocks))
|
|
|
|
|
|
static inline handle_t *__ext4_journal_start(struct inode *inode,
|
|
|
unsigned int line, int type,
|
|
|
- int nblocks)
|
|
|
+ int blocks, int rsv_blocks)
|
|
|
{
|
|
|
- return __ext4_journal_start_sb(inode->i_sb, line, type, nblocks);
|
|
|
+ return __ext4_journal_start_sb(inode->i_sb, line, type, blocks,
|
|
|
+ rsv_blocks);
|
|
|
}
|
|
|
|
|
|
#define ext4_journal_stop(handle) \
|
|
|
__ext4_journal_stop(__func__, __LINE__, (handle))
|
|
|
|
|
|
+#define ext4_journal_start_reserve(handle, type) \
|
|
|
+ __ext4_journal_start_reserved((handle), __LINE__, (type))
|
|
|
+
|
|
|
+handle_t *__ext4_journal_start_reserved(handle_t *handle, unsigned int line,
|
|
|
+ int type);
|
|
|
+
|
|
|
+static inline void ext4_journal_free_reserved(handle_t *handle)
|
|
|
+{
|
|
|
+ if (ext4_handle_valid(handle))
|
|
|
+ jbd2_journal_free_reserved(handle);
|
|
|
+}
|
|
|
+
|
|
|
static inline handle_t *ext4_journal_current_handle(void)
|
|
|
{
|
|
|
return journal_current_handle();
|