Pull ext4 updates from Ted Ts'o: "Many bug fixes and cleanups, and an optimization for case-insensitive lookups" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: fix coverity warning on error path of filename setup ext4: replace ktype default_attrs with default_groups ext4: rename htree_inline_dir_to_tree() to ext4_inlinedir_to_tree() ext4: refactor initialize_dirent_tail() ext4: rename "dirent_csum" functions to use "dirblock" ext4: allow directory holes jbd2: drop declaration of journal_sync_buffer() ext4: use jbd2_inode dirty range scoping jbd2: introduce jbd2_inode dirty range scoping mm: add filemap_fdatawait_range_keep_errors() ext4: remove redundant assignment to node ext4: optimize case-insensitive lookups ext4: make __ext4_get_inode_loc plug ext4: clean up kerneldoc warnigns when building with W=1 ext4: only set project inherit bit for directory ext4: enforce the immutable flag on open files ext4: don't allow any modifications to an immutable file jbd2: fix typo in comment of journal_submit_inode_data_buffers jbd2: fix some print format mistakes ext4: gracefully handle ext4_break_layouts() failure during truncate
Showing the changes to include/linux (3 of 23 files). Show all
Unified · Split
| @@ -2718,6 +2718,8 @@ extern int filemap_flush(struct address_space *); · 2717 unmodified lines | |||
| 2718 | extern int filemap_fdatawait_keep_errors(struct address_space *mapping); | 2718 | extern int filemap_fdatawait_keep_errors(struct address_space *mapping); |
| 2719 | extern int filemap_fdatawait_range(struct address_space *, loff_t lstart, | 2719 | extern int filemap_fdatawait_range(struct address_space *, loff_t lstart, |
| 2720 | loff_t lend); | 2720 | loff_t lend); |
| 2721 | extern int filemap_fdatawait_range_keep_errors(struct address_space *mapping, | ||
| 2722 | loff_t start_byte, loff_t end_byte); | ||
| 2721 | 2723 | ||
| 2722 | static inline int filemap_fdatawait(struct address_space *mapping) | 2724 | static inline int filemap_fdatawait(struct address_space *mapping) |
| 2723 | { | 2725 | { |
| @@ -451,6 +451,22 @@ struct jbd2_inode { · 450 unmodified lines | |||
| 451 | * @i_flags: Flags of inode [j_list_lock] | 451 | * @i_flags: Flags of inode [j_list_lock] |
| 452 | */ | 452 | */ |
| 453 | unsigned long i_flags; | 453 | unsigned long i_flags; |
| 454 | |||
| 455 | /** | ||
| 456 | * @i_dirty_start: | ||
| 457 | * | ||
| 458 | * Offset in bytes where the dirty range for this inode starts. | ||
| 459 | * [j_list_lock] | ||
| 460 | */ | ||
| 461 | loff_t i_dirty_start; | ||
| 462 | |||
| 463 | /** | ||
| 464 | * @i_dirty_end: | ||
| 465 | * | ||
| 466 | * Inclusive offset in bytes where the dirty range for this inode | ||
| 467 | * ends. [j_list_lock] | ||
| 468 | */ | ||
| 469 | loff_t i_dirty_end; | ||
| 454 | }; | 470 | }; |
| 455 | 471 | ||
| 456 | struct jbd2_revoke_table_s; | 472 | struct jbd2_revoke_table_s; |
| @@ -1357,7 +1373,6 @@ void jbd2_journal_set_triggers(struct buffer_head *, · 900 unmodified lines | |||
| 1357 | struct jbd2_buffer_trigger_type *type); | 1373 | struct jbd2_buffer_trigger_type *type); |
| 1358 | extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *); | 1374 | extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *); |
| 1359 | extern int jbd2_journal_forget (handle_t *, struct buffer_head *); | 1375 | extern int jbd2_journal_forget (handle_t *, struct buffer_head *); |
| 1360 | extern void journal_sync_buffer (struct buffer_head *); | ||
| 1361 | extern int jbd2_journal_invalidatepage(journal_t *, | 1376 | extern int jbd2_journal_invalidatepage(journal_t *, |
| 1362 | struct page *, unsigned int, unsigned int); | 1377 | struct page *, unsigned int, unsigned int); |
| 1363 | extern int jbd2_journal_try_to_free_buffers(journal_t *, struct page *, gfp_t); | 1378 | extern int jbd2_journal_try_to_free_buffers(journal_t *, struct page *, gfp_t); |
| @@ -1397,6 +1412,12 @@ extern int jbd2_journal_force_commit(journal_t *); · 33 unmodified lines | |||
| 1397 | extern int jbd2_journal_force_commit_nested(journal_t *); | 1412 | extern int jbd2_journal_force_commit_nested(journal_t *); |
| 1398 | extern int jbd2_journal_inode_add_write(handle_t *handle, struct jbd2_inode *inode); | 1413 | extern int jbd2_journal_inode_add_write(handle_t *handle, struct jbd2_inode *inode); |
| 1399 | extern int jbd2_journal_inode_add_wait(handle_t *handle, struct jbd2_inode *inode); | 1414 | extern int jbd2_journal_inode_add_wait(handle_t *handle, struct jbd2_inode *inode); |
| 1415 | extern int jbd2_journal_inode_ranged_write(handle_t *handle, | ||
| 1416 | struct jbd2_inode *inode, loff_t start_byte, | ||
| 1417 | loff_t length); | ||
| 1418 | extern int jbd2_journal_inode_ranged_wait(handle_t *handle, | ||
| 1419 | struct jbd2_inode *inode, loff_t start_byte, | ||
| 1420 | loff_t length); | ||
| 1400 | extern int jbd2_journal_begin_ordered_truncate(journal_t *journal, | 1421 | extern int jbd2_journal_begin_ordered_truncate(journal_t *journal, |
| 1401 | struct jbd2_inode *inode, loff_t new_size); | 1422 | struct jbd2_inode *inode, loff_t new_size); |
| 1402 | extern void jbd2_journal_init_jbd_inode(struct jbd2_inode *jinode, struct inode *inode); | 1423 | extern void jbd2_journal_init_jbd_inode(struct jbd2_inode *jinode, struct inode *inode); |
| @@ -17,6 +17,9 @@ int utf8_strncmp(const struct unicode_map *um, · 16 unmodified lines | |||
| 17 | 17 | ||
| 18 | int utf8_strncasecmp(const struct unicode_map *um, | 18 | int utf8_strncasecmp(const struct unicode_map *um, |
| 19 | const struct qstr *s1, const struct qstr *s2); | 19 | const struct qstr *s1, const struct qstr *s2); |
| 20 | int utf8_strncasecmp_folded(const struct unicode_map *um, | ||
| 21 | const struct qstr *cf, | ||
| 22 | const struct qstr *s1); | ||
| 20 | 23 | ||
| 21 | int utf8_normalize(const struct unicode_map *um, const struct qstr *str, | 24 | int utf8_normalize(const struct unicode_map *um, const struct qstr *str, |
| 22 | unsigned char *dest, size_t dlen); | 25 | unsigned char *dest, size_t dlen); |