mirror of https://gitee.com/openkylin/linux.git
A final set of miscellaneous bug fixes for ext4
-----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEK2m5VNv+CHkogTfJ8vlZVpUNgaMFAl+6tkoACgkQ8vlZVpUN gaO1xgf/aJ5chEWFEQVrdSdd+cvhuILz1Hp2iW8xdZgPeN2ovWIC3LPCTDr9FWB0 MhpGS9avYIf8mHZgsw7HVzqUv6gPcT0khragPp348QJzxnbz/saZ5ujK/WR2zJxr SoB9f2vdqW0gBbKMO6avXm0gTnuNemcK5oH6tzI5ECBpV3Ltk1dJWtgQkVp9rAyP EFEb9hUYpdZ3J1cm8SCUIO99Tu2KMd+yNRv42z0BKNTfBNe2P5aG56p1sMYMcIr7 BiVUrhPkbAf3gMsMDzZQE5mHZHyzJoHNHssLHWcEU/o9Wd2wZHjAEzzn9Tz49rUg yhYTrhLcQJcfmL0XvgrIhJaXTfMc6w== =s/1A -----END PGP SIGNATURE----- Merge tag 'ext4_for_linus_fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 fixes from Ted Ts'o: "A final set of miscellaneous bug fixes for ext4" * tag 'ext4_for_linus_fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: fix bogus warning in ext4_update_dx_flag() jbd2: fix kernel-doc markups ext4: drop fast_commit from /proc/mounts
This commit is contained in:
commit
a7f07fc14f
|
@ -2695,7 +2695,8 @@ void ext4_insert_dentry(struct inode *inode,
|
|||
struct ext4_filename *fname);
|
||||
static inline void ext4_update_dx_flag(struct inode *inode)
|
||||
{
|
||||
if (!ext4_has_feature_dir_index(inode->i_sb)) {
|
||||
if (!ext4_has_feature_dir_index(inode->i_sb) &&
|
||||
ext4_test_inode_flag(inode, EXT4_INODE_INDEX)) {
|
||||
/* ext4_iget() should have caught this... */
|
||||
WARN_ON_ONCE(ext4_has_feature_metadata_csum(inode->i_sb));
|
||||
ext4_clear_inode_flag(inode, EXT4_INODE_INDEX);
|
||||
|
|
|
@ -2638,10 +2638,6 @@ static int _ext4_show_options(struct seq_file *seq, struct super_block *sb,
|
|||
} else if (test_opt2(sb, DAX_INODE)) {
|
||||
SEQ_OPTS_PUTS("dax=inode");
|
||||
}
|
||||
|
||||
if (test_opt2(sb, JOURNAL_FAST_COMMIT))
|
||||
SEQ_OPTS_PUTS("fast_commit");
|
||||
|
||||
ext4_show_quota_options(seq, sb);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -566,12 +566,14 @@ static int __jbd2_journal_force_commit(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* Force and wait upon a commit if the calling process is not within
|
||||
* transaction. This is used for forcing out undo-protected data which contains
|
||||
* bitmaps, when the fs is running out of space.
|
||||
* jbd2_journal_force_commit_nested - Force and wait upon a commit if the
|
||||
* calling process is not within transaction.
|
||||
*
|
||||
* @journal: journal to force
|
||||
* Returns true if progress was made.
|
||||
*
|
||||
* This is used for forcing out undo-protected data which contains
|
||||
* bitmaps, when the fs is running out of space.
|
||||
*/
|
||||
int jbd2_journal_force_commit_nested(journal_t *journal)
|
||||
{
|
||||
|
@ -582,7 +584,7 @@ int jbd2_journal_force_commit_nested(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* int journal_force_commit() - force any uncommitted transactions
|
||||
* jbd2_journal_force_commit() - force any uncommitted transactions
|
||||
* @journal: journal to force
|
||||
*
|
||||
* Caller want unconditional commit. We can only force the running transaction
|
||||
|
@ -1881,7 +1883,7 @@ static int load_superblock(journal_t *journal)
|
|||
|
||||
|
||||
/**
|
||||
* int jbd2_journal_load() - Read journal from disk.
|
||||
* jbd2_journal_load() - Read journal from disk.
|
||||
* @journal: Journal to act on.
|
||||
*
|
||||
* Given a journal_t structure which tells us which disk blocks contain
|
||||
|
@ -1951,7 +1953,7 @@ int jbd2_journal_load(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* void jbd2_journal_destroy() - Release a journal_t structure.
|
||||
* jbd2_journal_destroy() - Release a journal_t structure.
|
||||
* @journal: Journal to act on.
|
||||
*
|
||||
* Release a journal_t structure once it is no longer in use by the
|
||||
|
@ -2028,7 +2030,7 @@ int jbd2_journal_destroy(journal_t *journal)
|
|||
|
||||
|
||||
/**
|
||||
*int jbd2_journal_check_used_features() - Check if features specified are used.
|
||||
* jbd2_journal_check_used_features() - Check if features specified are used.
|
||||
* @journal: Journal to check.
|
||||
* @compat: bitmask of compatible features
|
||||
* @ro: bitmask of features that force read-only mount
|
||||
|
@ -2063,7 +2065,7 @@ int jbd2_journal_check_used_features(journal_t *journal, unsigned long compat,
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_check_available_features() - Check feature set in journalling layer
|
||||
* jbd2_journal_check_available_features() - Check feature set in journalling layer
|
||||
* @journal: Journal to check.
|
||||
* @compat: bitmask of compatible features
|
||||
* @ro: bitmask of features that force read-only mount
|
||||
|
@ -2126,7 +2128,7 @@ jbd2_journal_initialize_fast_commit(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_set_features() - Mark a given journal feature in the superblock
|
||||
* jbd2_journal_set_features() - Mark a given journal feature in the superblock
|
||||
* @journal: Journal to act on.
|
||||
* @compat: bitmask of compatible features
|
||||
* @ro: bitmask of features that force read-only mount
|
||||
|
@ -2217,7 +2219,7 @@ int jbd2_journal_set_features(journal_t *journal, unsigned long compat,
|
|||
}
|
||||
|
||||
/*
|
||||
* jbd2_journal_clear_features () - Clear a given journal feature in the
|
||||
* jbd2_journal_clear_features() - Clear a given journal feature in the
|
||||
* superblock
|
||||
* @journal: Journal to act on.
|
||||
* @compat: bitmask of compatible features
|
||||
|
@ -2246,7 +2248,7 @@ void jbd2_journal_clear_features(journal_t *journal, unsigned long compat,
|
|||
EXPORT_SYMBOL(jbd2_journal_clear_features);
|
||||
|
||||
/**
|
||||
* int jbd2_journal_flush () - Flush journal
|
||||
* jbd2_journal_flush() - Flush journal
|
||||
* @journal: Journal to act on.
|
||||
*
|
||||
* Flush all data for a given journal to disk and empty the journal.
|
||||
|
@ -2321,7 +2323,7 @@ int jbd2_journal_flush(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_wipe() - Wipe journal contents
|
||||
* jbd2_journal_wipe() - Wipe journal contents
|
||||
* @journal: Journal to act on.
|
||||
* @write: flag (see below)
|
||||
*
|
||||
|
@ -2362,7 +2364,7 @@ int jbd2_journal_wipe(journal_t *journal, int write)
|
|||
}
|
||||
|
||||
/**
|
||||
* void jbd2_journal_abort () - Shutdown the journal immediately.
|
||||
* jbd2_journal_abort () - Shutdown the journal immediately.
|
||||
* @journal: the journal to shutdown.
|
||||
* @errno: an error number to record in the journal indicating
|
||||
* the reason for the shutdown.
|
||||
|
@ -2453,7 +2455,7 @@ void jbd2_journal_abort(journal_t *journal, int errno)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_errno () - returns the journal's error state.
|
||||
* jbd2_journal_errno() - returns the journal's error state.
|
||||
* @journal: journal to examine.
|
||||
*
|
||||
* This is the errno number set with jbd2_journal_abort(), the last
|
||||
|
@ -2477,7 +2479,7 @@ int jbd2_journal_errno(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_clear_err () - clears the journal's error state
|
||||
* jbd2_journal_clear_err() - clears the journal's error state
|
||||
* @journal: journal to act on.
|
||||
*
|
||||
* An error must be cleared or acked to take a FS out of readonly
|
||||
|
@ -2497,7 +2499,7 @@ int jbd2_journal_clear_err(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* void jbd2_journal_ack_err() - Ack journal err.
|
||||
* jbd2_journal_ack_err() - Ack journal err.
|
||||
* @journal: journal to act on.
|
||||
*
|
||||
* An error must be cleared or acked to take a FS out of readonly
|
||||
|
|
|
@ -519,7 +519,7 @@ EXPORT_SYMBOL(jbd2__journal_start);
|
|||
|
||||
|
||||
/**
|
||||
* handle_t *jbd2_journal_start() - Obtain a new handle.
|
||||
* jbd2_journal_start() - Obtain a new handle.
|
||||
* @journal: Journal to start transaction on.
|
||||
* @nblocks: number of block buffer we might modify
|
||||
*
|
||||
|
@ -566,7 +566,7 @@ void jbd2_journal_free_reserved(handle_t *handle)
|
|||
EXPORT_SYMBOL(jbd2_journal_free_reserved);
|
||||
|
||||
/**
|
||||
* int jbd2_journal_start_reserved() - start reserved handle
|
||||
* jbd2_journal_start_reserved() - start reserved handle
|
||||
* @handle: handle to start
|
||||
* @type: for handle statistics
|
||||
* @line_no: for handle statistics
|
||||
|
@ -620,7 +620,7 @@ int jbd2_journal_start_reserved(handle_t *handle, unsigned int type,
|
|||
EXPORT_SYMBOL(jbd2_journal_start_reserved);
|
||||
|
||||
/**
|
||||
* int jbd2_journal_extend() - extend buffer credits.
|
||||
* jbd2_journal_extend() - extend buffer credits.
|
||||
* @handle: handle to 'extend'
|
||||
* @nblocks: nr blocks to try to extend by.
|
||||
* @revoke_records: number of revoke records to try to extend by.
|
||||
|
@ -745,7 +745,7 @@ static void stop_this_handle(handle_t *handle)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_restart() - restart a handle .
|
||||
* jbd2__journal_restart() - restart a handle .
|
||||
* @handle: handle to restart
|
||||
* @nblocks: nr credits requested
|
||||
* @revoke_records: number of revoke record credits requested
|
||||
|
@ -815,7 +815,7 @@ int jbd2_journal_restart(handle_t *handle, int nblocks)
|
|||
EXPORT_SYMBOL(jbd2_journal_restart);
|
||||
|
||||
/**
|
||||
* void jbd2_journal_lock_updates () - establish a transaction barrier.
|
||||
* jbd2_journal_lock_updates () - establish a transaction barrier.
|
||||
* @journal: Journal to establish a barrier on.
|
||||
*
|
||||
* This locks out any further updates from being started, and blocks
|
||||
|
@ -874,7 +874,7 @@ void jbd2_journal_lock_updates(journal_t *journal)
|
|||
}
|
||||
|
||||
/**
|
||||
* void jbd2_journal_unlock_updates (journal_t* journal) - release barrier
|
||||
* jbd2_journal_unlock_updates () - release barrier
|
||||
* @journal: Journal to release the barrier on.
|
||||
*
|
||||
* Release a transaction barrier obtained with jbd2_journal_lock_updates().
|
||||
|
@ -1182,7 +1182,8 @@ static bool jbd2_write_access_granted(handle_t *handle, struct buffer_head *bh,
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_get_write_access() - notify intent to modify a buffer for metadata (not data) update.
|
||||
* jbd2_journal_get_write_access() - notify intent to modify a buffer
|
||||
* for metadata (not data) update.
|
||||
* @handle: transaction to add buffer modifications to
|
||||
* @bh: bh to be used for metadata writes
|
||||
*
|
||||
|
@ -1226,7 +1227,7 @@ int jbd2_journal_get_write_access(handle_t *handle, struct buffer_head *bh)
|
|||
* unlocked buffer beforehand. */
|
||||
|
||||
/**
|
||||
* int jbd2_journal_get_create_access () - notify intent to use newly created bh
|
||||
* jbd2_journal_get_create_access () - notify intent to use newly created bh
|
||||
* @handle: transaction to new buffer to
|
||||
* @bh: new buffer.
|
||||
*
|
||||
|
@ -1306,7 +1307,7 @@ int jbd2_journal_get_create_access(handle_t *handle, struct buffer_head *bh)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_get_undo_access() - Notify intent to modify metadata with
|
||||
* jbd2_journal_get_undo_access() - Notify intent to modify metadata with
|
||||
* non-rewindable consequences
|
||||
* @handle: transaction
|
||||
* @bh: buffer to undo
|
||||
|
@ -1383,7 +1384,7 @@ int jbd2_journal_get_undo_access(handle_t *handle, struct buffer_head *bh)
|
|||
}
|
||||
|
||||
/**
|
||||
* void jbd2_journal_set_triggers() - Add triggers for commit writeout
|
||||
* jbd2_journal_set_triggers() - Add triggers for commit writeout
|
||||
* @bh: buffer to trigger on
|
||||
* @type: struct jbd2_buffer_trigger_type containing the trigger(s).
|
||||
*
|
||||
|
@ -1425,7 +1426,7 @@ void jbd2_buffer_abort_trigger(struct journal_head *jh,
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_dirty_metadata() - mark a buffer as containing dirty metadata
|
||||
* jbd2_journal_dirty_metadata() - mark a buffer as containing dirty metadata
|
||||
* @handle: transaction to add buffer to.
|
||||
* @bh: buffer to mark
|
||||
*
|
||||
|
@ -1593,7 +1594,7 @@ int jbd2_journal_dirty_metadata(handle_t *handle, struct buffer_head *bh)
|
|||
}
|
||||
|
||||
/**
|
||||
* void jbd2_journal_forget() - bforget() for potentially-journaled buffers.
|
||||
* jbd2_journal_forget() - bforget() for potentially-journaled buffers.
|
||||
* @handle: transaction handle
|
||||
* @bh: bh to 'forget'
|
||||
*
|
||||
|
@ -1762,7 +1763,7 @@ int jbd2_journal_forget(handle_t *handle, struct buffer_head *bh)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_stop() - complete a transaction
|
||||
* jbd2_journal_stop() - complete a transaction
|
||||
* @handle: transaction to complete.
|
||||
*
|
||||
* All done for a particular handle.
|
||||
|
@ -2080,7 +2081,7 @@ __journal_try_to_free_buffer(journal_t *journal, struct buffer_head *bh)
|
|||
}
|
||||
|
||||
/**
|
||||
* int jbd2_journal_try_to_free_buffers() - try to free page buffers.
|
||||
* jbd2_journal_try_to_free_buffers() - try to free page buffers.
|
||||
* @journal: journal for operation
|
||||
* @page: to try and free
|
||||
*
|
||||
|
@ -2411,7 +2412,7 @@ static int journal_unmap_buffer(journal_t *journal, struct buffer_head *bh,
|
|||
}
|
||||
|
||||
/**
|
||||
* void jbd2_journal_invalidatepage()
|
||||
* jbd2_journal_invalidatepage()
|
||||
* @journal: journal to use for flush...
|
||||
* @page: page to flush
|
||||
* @offset: start of the range to invalidate
|
||||
|
|
|
@ -401,7 +401,7 @@ static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
|
|||
#define JI_WAIT_DATA (1 << __JI_WAIT_DATA)
|
||||
|
||||
/**
|
||||
* struct jbd_inode - The jbd_inode type is the structure linking inodes in
|
||||
* struct jbd2_inode - The jbd_inode type is the structure linking inodes in
|
||||
* ordered mode present in a transaction so that we can sync them during commit.
|
||||
*/
|
||||
struct jbd2_inode {
|
||||
|
|
Loading…
Reference in New Issue