Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

jbd2: fix sphinx kernel-doc build warnings

Sphinx emits various (26) warnings when building make target 'htmldocs'.
Currently struct definitions contain duplicate documentation, some as
kernel-docs and some as standard c89 comments. We can reduce
duplication while cleaning up the kernel docs.

Move all kernel-docs to right above each struct member. Use the set of
all existing comments (kernel-doc and c89). Add documentation for
missing struct members and function arguments.

Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org

authored by

Tobin C. Harding and committed by
Theodore Ts'o
f69120ce abbc3f93

+272 -164
+4 -1
fs/jbd2/transaction.c
··· 492 492 EXPORT_SYMBOL(jbd2_journal_free_reserved); 493 493 494 494 /** 495 - * int jbd2_journal_start_reserved(handle_t *handle) - start reserved handle 495 + * int jbd2_journal_start_reserved() - start reserved handle 496 496 * @handle: handle to start 497 + * @type: for handle statistics 498 + * @line_no: for handle statistics 497 499 * 498 500 * Start handle that has been previously reserved with jbd2_journal_reserve(). 499 501 * This attaches @handle to the running transaction (or creates one if there's ··· 625 623 * int jbd2_journal_restart() - restart a handle . 626 624 * @handle: handle to restart 627 625 * @nblocks: nr credits requested 626 + * @gfp_mask: memory allocation flags (for start_this_handle) 628 627 * 629 628 * Restart a handle for a multi-transaction filesystem 630 629 * operation.
+268 -163
include/linux/jbd2.h
··· 418 418 #define JI_WAIT_DATA (1 << __JI_WAIT_DATA) 419 419 420 420 /** 421 - * struct jbd_inode is the structure linking inodes in ordered mode 422 - * present in a transaction so that we can sync them during commit. 421 + * struct jbd_inode - The jbd_inode type is the structure linking inodes in 422 + * ordered mode present in a transaction so that we can sync them during commit. 423 423 */ 424 424 struct jbd2_inode { 425 - /* Which transaction does this inode belong to? Either the running 426 - * transaction or the committing one. [j_list_lock] */ 425 + /** 426 + * @i_transaction: 427 + * 428 + * Which transaction does this inode belong to? Either the running 429 + * transaction or the committing one. [j_list_lock] 430 + */ 427 431 transaction_t *i_transaction; 428 432 429 - /* Pointer to the running transaction modifying inode's data in case 430 - * there is already a committing transaction touching it. [j_list_lock] */ 433 + /** 434 + * @i_next_transaction: 435 + * 436 + * Pointer to the running transaction modifying inode's data in case 437 + * there is already a committing transaction touching it. [j_list_lock] 438 + */ 431 439 transaction_t *i_next_transaction; 432 440 433 - /* List of inodes in the i_transaction [j_list_lock] */ 441 + /** 442 + * @i_list: List of inodes in the i_transaction [j_list_lock] 443 + */ 434 444 struct list_head i_list; 435 445 436 - /* VFS inode this inode belongs to [constant during the lifetime 437 - * of the structure] */ 446 + /** 447 + * @i_vfs_inode: 448 + * 449 + * VFS inode this inode belongs to [constant for lifetime of structure] 450 + */ 438 451 struct inode *i_vfs_inode; 439 452 440 - /* Flags of inode [j_list_lock] */ 453 + /** 454 + * @i_flags: Flags of inode [j_list_lock] 455 + */ 441 456 unsigned long i_flags; 442 457 }; 443 458 ··· 462 447 * struct handle_s - The handle_s type is the concrete type associated with 463 448 * handle_t. 464 449 * @h_transaction: Which compound transaction is this update a part of? 450 + * @h_journal: Which journal handle belongs to - used iff h_reserved set. 451 + * @h_rsv_handle: Handle reserved for finishing the logical operation. 465 452 * @h_buffer_credits: Number of remaining buffers we are allowed to dirty. 466 - * @h_ref: Reference count on this handle 467 - * @h_err: Field for caller's use to track errors through large fs operations 468 - * @h_sync: flag for sync-on-close 469 - * @h_jdata: flag to force data journaling 470 - * @h_aborted: flag indicating fatal error on handle 453 + * @h_ref: Reference count on this handle. 454 + * @h_err: Field for caller's use to track errors through large fs operations. 455 + * @h_sync: Flag for sync-on-close. 456 + * @h_jdata: Flag to force data journaling. 457 + * @h_reserved: Flag for handle for reserved credits. 458 + * @h_aborted: Flag indicating fatal error on handle. 459 + * @h_type: For handle statistics. 460 + * @h_line_no: For handle statistics. 461 + * @h_start_jiffies: Handle Start time. 462 + * @h_requested_credits: Holds @h_buffer_credits after handle is started. 463 + * @saved_alloc_context: Saved context while transaction is open. 471 464 **/ 472 465 473 466 /* Docbook can't yet cope with the bit fields, but will leave the documentation ··· 485 462 struct jbd2_journal_handle 486 463 { 487 464 union { 488 - /* Which compound transaction is this update a part of? */ 489 465 transaction_t *h_transaction; 490 466 /* Which journal handle belongs to - used iff h_reserved set */ 491 467 journal_t *h_journal; 492 468 }; 493 469 494 - /* Handle reserved for finishing the logical operation */ 495 470 handle_t *h_rsv_handle; 496 - 497 - /* Number of remaining buffers we are allowed to dirty: */ 498 471 int h_buffer_credits; 499 - 500 - /* Reference count on this handle */ 501 472 int h_ref; 502 - 503 - /* Field for caller's use to track errors through large fs */ 504 - /* operations */ 505 473 int h_err; 506 474 507 475 /* Flags [no locking] */ 508 - unsigned int h_sync: 1; /* sync-on-close */ 509 - unsigned int h_jdata: 1; /* force data journaling */ 510 - unsigned int h_reserved: 1; /* handle with reserved credits */ 511 - unsigned int h_aborted: 1; /* fatal error on handle */ 512 - unsigned int h_type: 8; /* for handle statistics */ 513 - unsigned int h_line_no: 16; /* for handle statistics */ 476 + unsigned int h_sync: 1; 477 + unsigned int h_jdata: 1; 478 + unsigned int h_reserved: 1; 479 + unsigned int h_aborted: 1; 480 + unsigned int h_type: 8; 481 + unsigned int h_line_no: 16; 514 482 515 483 unsigned long h_start_jiffies; 516 484 unsigned int h_requested_credits; ··· 743 729 /** 744 730 * struct journal_s - The journal_s type is the concrete type associated with 745 731 * journal_t. 746 - * @j_flags: General journaling state flags 747 - * @j_errno: Is there an outstanding uncleared error on the journal (from a 748 - * prior abort)? 749 - * @j_sb_buffer: First part of superblock buffer 750 - * @j_superblock: Second part of superblock buffer 751 - * @j_format_version: Version of the superblock format 752 - * @j_state_lock: Protect the various scalars in the journal 753 - * @j_barrier_count: Number of processes waiting to create a barrier lock 754 - * @j_barrier: The barrier lock itself 755 - * @j_running_transaction: The current running transaction.. 756 - * @j_committing_transaction: the transaction we are pushing to disk 757 - * @j_checkpoint_transactions: a linked circular list of all transactions 758 - * waiting for checkpointing 759 - * @j_wait_transaction_locked: Wait queue for waiting for a locked transaction 760 - * to start committing, or for a barrier lock to be released 761 - * @j_wait_done_commit: Wait queue for waiting for commit to complete 762 - * @j_wait_commit: Wait queue to trigger commit 763 - * @j_wait_updates: Wait queue to wait for updates to complete 764 - * @j_wait_reserved: Wait queue to wait for reserved buffer credits to drop 765 - * @j_checkpoint_mutex: Mutex for locking against concurrent checkpoints 766 - * @j_head: Journal head - identifies the first unused block in the journal 767 - * @j_tail: Journal tail - identifies the oldest still-used block in the 768 - * journal. 769 - * @j_free: Journal free - how many free blocks are there in the journal? 770 - * @j_first: The block number of the first usable block 771 - * @j_last: The block number one beyond the last usable block 772 - * @j_dev: Device where we store the journal 773 - * @j_blocksize: blocksize for the location where we store the journal. 774 - * @j_blk_offset: starting block offset for into the device where we store the 775 - * journal 776 - * @j_fs_dev: Device which holds the client fs. For internal journal this will 777 - * be equal to j_dev 778 - * @j_reserved_credits: Number of buffers reserved from the running transaction 779 - * @j_maxlen: Total maximum capacity of the journal region on disk. 780 - * @j_list_lock: Protects the buffer lists and internal buffer state. 781 - * @j_inode: Optional inode where we store the journal. If present, all journal 782 - * block numbers are mapped into this inode via bmap(). 783 - * @j_tail_sequence: Sequence number of the oldest transaction in the log 784 - * @j_transaction_sequence: Sequence number of the next transaction to grant 785 - * @j_commit_sequence: Sequence number of the most recently committed 786 - * transaction 787 - * @j_commit_request: Sequence number of the most recent transaction wanting 788 - * commit 789 - * @j_uuid: Uuid of client object. 790 - * @j_task: Pointer to the current commit thread for this journal 791 - * @j_max_transaction_buffers: Maximum number of metadata buffers to allow in a 792 - * single compound commit transaction 793 - * @j_commit_interval: What is the maximum transaction lifetime before we begin 794 - * a commit? 795 - * @j_commit_timer: The timer used to wakeup the commit thread 796 - * @j_revoke_lock: Protect the revoke table 797 - * @j_revoke: The revoke table - maintains the list of revoked blocks in the 798 - * current transaction. 799 - * @j_revoke_table: alternate revoke tables for j_revoke 800 - * @j_wbuf: array of buffer_heads for jbd2_journal_commit_transaction 801 - * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the 802 - * number that will fit in j_blocksize 803 - * @j_last_sync_writer: most recent pid which did a synchronous write 804 - * @j_history_lock: Protect the transactions statistics history 805 - * @j_proc_entry: procfs entry for the jbd statistics directory 806 - * @j_stats: Overall statistics 807 - * @j_private: An opaque pointer to fs-private information. 808 - * @j_trans_commit_map: Lockdep entity to track transaction commit dependencies 809 732 */ 810 - 811 733 struct journal_s 812 734 { 813 - /* General journaling state flags [j_state_lock] */ 735 + /** 736 + * @j_flags: General journaling state flags [j_state_lock] 737 + */ 814 738 unsigned long j_flags; 815 739 816 - /* 740 + /** 741 + * @j_errno: 742 + * 817 743 * Is there an outstanding uncleared error on the journal (from a prior 818 744 * abort)? [j_state_lock] 819 745 */ 820 746 int j_errno; 821 747 822 - /* The superblock buffer */ 748 + /** 749 + * @j_sb_buffer: The first part of the superblock buffer. 750 + */ 823 751 struct buffer_head *j_sb_buffer; 752 + 753 + /** 754 + * @j_superblock: The second part of the superblock buffer. 755 + */ 824 756 journal_superblock_t *j_superblock; 825 757 826 - /* Version of the superblock format */ 758 + /** 759 + * @j_format_version: Version of the superblock format. 760 + */ 827 761 int j_format_version; 828 762 829 - /* 830 - * Protect the various scalars in the journal 763 + /** 764 + * @j_state_lock: Protect the various scalars in the journal. 831 765 */ 832 766 rwlock_t j_state_lock; 833 767 834 - /* 768 + /** 769 + * @j_barrier_count: 770 + * 835 771 * Number of processes waiting to create a barrier lock [j_state_lock] 836 772 */ 837 773 int j_barrier_count; 838 774 839 - /* The barrier lock itself */ 775 + /** 776 + * @j_barrier: The barrier lock itself. 777 + */ 840 778 struct mutex j_barrier; 841 779 842 - /* 780 + /** 781 + * @j_running_transaction: 782 + * 843 783 * Transactions: The current running transaction... 844 784 * [j_state_lock] [caller holding open handle] 845 785 */ 846 786 transaction_t *j_running_transaction; 847 787 848 - /* 788 + /** 789 + * @j_committing_transaction: 790 + * 849 791 * the transaction we are pushing to disk 850 792 * [j_state_lock] [caller holding open handle] 851 793 */ 852 794 transaction_t *j_committing_transaction; 853 795 854 - /* 796 + /** 797 + * @j_checkpoint_transactions: 798 + * 855 799 * ... and a linked circular list of all transactions waiting for 856 800 * checkpointing. [j_list_lock] 857 801 */ 858 802 transaction_t *j_checkpoint_transactions; 859 803 860 - /* 804 + /** 805 + * @j_wait_transaction_locked: 806 + * 861 807 * Wait queue for waiting for a locked transaction to start committing, 862 - * or for a barrier lock to be released 808 + * or for a barrier lock to be released. 863 809 */ 864 810 wait_queue_head_t j_wait_transaction_locked; 865 811 866 - /* Wait queue for waiting for commit to complete */ 812 + /** 813 + * @j_wait_done_commit: Wait queue for waiting for commit to complete. 814 + */ 867 815 wait_queue_head_t j_wait_done_commit; 868 816 869 - /* Wait queue to trigger commit */ 817 + /** 818 + * @j_wait_commit: Wait queue to trigger commit. 819 + */ 870 820 wait_queue_head_t j_wait_commit; 871 821 872 - /* Wait queue to wait for updates to complete */ 822 + /** 823 + * @j_wait_updates: Wait queue to wait for updates to complete. 824 + */ 873 825 wait_queue_head_t j_wait_updates; 874 826 875 - /* Wait queue to wait for reserved buffer credits to drop */ 827 + /** 828 + * @j_wait_reserved: 829 + * 830 + * Wait queue to wait for reserved buffer credits to drop. 831 + */ 876 832 wait_queue_head_t j_wait_reserved; 877 833 878 - /* Semaphore for locking against concurrent checkpoints */ 834 + /** 835 + * @j_checkpoint_mutex: 836 + * 837 + * Semaphore for locking against concurrent checkpoints. 838 + */ 879 839 struct mutex j_checkpoint_mutex; 880 840 881 - /* 841 + /** 842 + * @j_chkpt_bhs: 843 + * 882 844 * List of buffer heads used by the checkpoint routine. This 883 845 * was moved from jbd2_log_do_checkpoint() to reduce stack 884 846 * usage. Access to this array is controlled by the 885 - * j_checkpoint_mutex. [j_checkpoint_mutex] 847 + * @j_checkpoint_mutex. [j_checkpoint_mutex] 886 848 */ 887 849 struct buffer_head *j_chkpt_bhs[JBD2_NR_BATCH]; 888 - 889 - /* 850 + 851 + /** 852 + * @j_head: 853 + * 890 854 * Journal head: identifies the first unused block in the journal. 891 855 * [j_state_lock] 892 856 */ 893 857 unsigned long j_head; 894 858 895 - /* 859 + /** 860 + * @j_tail: 861 + * 896 862 * Journal tail: identifies the oldest still-used block in the journal. 897 863 * [j_state_lock] 898 864 */ 899 865 unsigned long j_tail; 900 866 901 - /* 867 + /** 868 + * @j_free: 869 + * 902 870 * Journal free: how many free blocks are there in the journal? 903 871 * [j_state_lock] 904 872 */ 905 873 unsigned long j_free; 906 874 907 - /* 908 - * Journal start and end: the block numbers of the first usable block 909 - * and one beyond the last usable block in the journal. [j_state_lock] 875 + /** 876 + * @j_first: 877 + * 878 + * The block number of the first usable block in the journal 879 + * [j_state_lock]. 910 880 */ 911 881 unsigned long j_first; 882 + 883 + /** 884 + * @j_last: 885 + * 886 + * The block number one beyond the last usable block in the journal 887 + * [j_state_lock]. 888 + */ 912 889 unsigned long j_last; 913 890 914 - /* 915 - * Device, blocksize and starting block offset for the location where we 916 - * store the journal. 891 + /** 892 + * @j_dev: Device where we store the journal. 917 893 */ 918 894 struct block_device *j_dev; 895 + 896 + /** 897 + * @j_blocksize: Block size for the location where we store the journal. 898 + */ 919 899 int j_blocksize; 900 + 901 + /** 902 + * @j_blk_offset: 903 + * 904 + * Starting block offset into the device where we store the journal. 905 + */ 920 906 unsigned long long j_blk_offset; 907 + 908 + /** 909 + * @j_devname: Journal device name. 910 + */ 921 911 char j_devname[BDEVNAME_SIZE+24]; 922 912 923 - /* 913 + /** 914 + * @j_fs_dev: 915 + * 924 916 * Device which holds the client fs. For internal journal this will be 925 917 * equal to j_dev. 926 918 */ 927 919 struct block_device *j_fs_dev; 928 920 929 - /* Total maximum capacity of the journal region on disk. */ 921 + /** 922 + * @j_maxlen: Total maximum capacity of the journal region on disk. 923 + */ 930 924 unsigned int j_maxlen; 931 925 932 - /* Number of buffers reserved from the running transaction */ 926 + /** 927 + * @j_reserved_credits: 928 + * 929 + * Number of buffers reserved from the running transaction. 930 + */ 933 931 atomic_t j_reserved_credits; 934 932 935 - /* 936 - * Protects the buffer lists and internal buffer state. 933 + /** 934 + * @j_list_lock: Protects the buffer lists and internal buffer state. 937 935 */ 938 936 spinlock_t j_list_lock; 939 937 940 - /* Optional inode where we store the journal. If present, all */ 941 - /* journal block numbers are mapped into this inode via */ 942 - /* bmap(). */ 938 + /** 939 + * @j_inode: 940 + * 941 + * Optional inode where we store the journal. If present, all 942 + * journal block numbers are mapped into this inode via bmap(). 943 + */ 943 944 struct inode *j_inode; 944 945 945 - /* 946 + /** 947 + * @j_tail_sequence: 948 + * 946 949 * Sequence number of the oldest transaction in the log [j_state_lock] 947 950 */ 948 951 tid_t j_tail_sequence; 949 952 950 - /* 953 + /** 954 + * @j_transaction_sequence: 955 + * 951 956 * Sequence number of the next transaction to grant [j_state_lock] 952 957 */ 953 958 tid_t j_transaction_sequence; 954 959 955 - /* 960 + /** 961 + * @j_commit_sequence: 962 + * 956 963 * Sequence number of the most recently committed transaction 957 964 * [j_state_lock]. 958 965 */ 959 966 tid_t j_commit_sequence; 960 967 961 - /* 968 + /** 969 + * @j_commit_request: 970 + * 962 971 * Sequence number of the most recent transaction wanting commit 963 972 * [j_state_lock] 964 973 */ 965 974 tid_t j_commit_request; 966 975 967 - /* 976 + /** 977 + * @j_uuid: 978 + * 968 979 * Journal uuid: identifies the object (filesystem, LVM volume etc) 969 980 * backed by this journal. This will eventually be replaced by an array 970 981 * of uuids, allowing us to index multiple devices within a single ··· 997 958 */ 998 959 __u8 j_uuid[16]; 999 960 1000 - /* Pointer to the current commit thread for this journal */ 961 + /** 962 + * @j_task: Pointer to the current commit thread for this journal. 963 + */ 1001 964 struct task_struct *j_task; 1002 965 1003 - /* 966 + /** 967 + * @j_max_transaction_buffers: 968 + * 1004 969 * Maximum number of metadata buffers to allow in a single compound 1005 - * commit transaction 970 + * commit transaction. 1006 971 */ 1007 972 int j_max_transaction_buffers; 1008 973 1009 - /* 974 + /** 975 + * @j_commit_interval: 976 + * 1010 977 * What is the maximum transaction lifetime before we begin a commit? 1011 978 */ 1012 979 unsigned long j_commit_interval; 1013 980 1014 - /* The timer used to wakeup the commit thread: */ 981 + /** 982 + * @j_commit_timer: The timer used to wakeup the commit thread. 983 + */ 1015 984 struct timer_list j_commit_timer; 1016 985 1017 - /* 1018 - * The revoke table: maintains the list of revoked blocks in the 1019 - * current transaction. [j_revoke_lock] 986 + /** 987 + * @j_revoke_lock: Protect the revoke table. 1020 988 */ 1021 989 spinlock_t j_revoke_lock; 990 + 991 + /** 992 + * @j_revoke: 993 + * 994 + * The revoke table - maintains the list of revoked blocks in the 995 + * current transaction. 996 + */ 1022 997 struct jbd2_revoke_table_s *j_revoke; 998 + 999 + /** 1000 + * @j_revoke_table: Alternate revoke tables for j_revoke. 1001 + */ 1023 1002 struct jbd2_revoke_table_s *j_revoke_table[2]; 1024 1003 1025 - /* 1026 - * array of bhs for jbd2_journal_commit_transaction 1004 + /** 1005 + * @j_wbuf: Array of bhs for jbd2_journal_commit_transaction. 1027 1006 */ 1028 1007 struct buffer_head **j_wbuf; 1008 + 1009 + /** 1010 + * @j_wbufsize: 1011 + * 1012 + * Size of @j_wbuf array. 1013 + */ 1029 1014 int j_wbufsize; 1030 1015 1031 - /* 1032 - * this is the pid of hte last person to run a synchronous operation 1033 - * through the journal 1016 + /** 1017 + * @j_last_sync_writer: 1018 + * 1019 + * The pid of the last person to run a synchronous operation 1020 + * through the journal. 1034 1021 */ 1035 1022 pid_t j_last_sync_writer; 1036 1023 1037 - /* 1038 - * the average amount of time in nanoseconds it takes to commit a 1024 + /** 1025 + * @j_average_commit_time: 1026 + * 1027 + * The average amount of time in nanoseconds it takes to commit a 1039 1028 * transaction to disk. [j_state_lock] 1040 1029 */ 1041 1030 u64 j_average_commit_time; 1042 1031 1043 - /* 1044 - * minimum and maximum times that we should wait for 1045 - * additional filesystem operations to get batched into a 1046 - * synchronous handle in microseconds 1032 + /** 1033 + * @j_min_batch_time: 1034 + * 1035 + * Minimum time that we should wait for additional filesystem operations 1036 + * to get batched into a synchronous handle in microseconds. 1047 1037 */ 1048 1038 u32 j_min_batch_time; 1039 + 1040 + /** 1041 + * @j_max_batch_time: 1042 + * 1043 + * Maximum time that we should wait for additional filesystem operations 1044 + * to get batched into a synchronous handle in microseconds. 1045 + */ 1049 1046 u32 j_max_batch_time; 1050 1047 1051 - /* This function is called when a transaction is closed */ 1048 + /** 1049 + * @j_commit_callback: 1050 + * 1051 + * This function is called when a transaction is closed. 1052 + */ 1052 1053 void (*j_commit_callback)(journal_t *, 1053 1054 transaction_t *); 1054 1055 1055 1056 /* 1056 1057 * Journal statistics 1057 1058 */ 1059 + 1060 + /** 1061 + * @j_history_lock: Protect the transactions statistics history. 1062 + */ 1058 1063 spinlock_t j_history_lock; 1064 + 1065 + /** 1066 + * @j_proc_entry: procfs entry for the jbd statistics directory. 1067 + */ 1059 1068 struct proc_dir_entry *j_proc_entry; 1069 + 1070 + /** 1071 + * @j_stats: Overall statistics. 1072 + */ 1060 1073 struct transaction_stats_s j_stats; 1061 1074 1062 - /* Failed journal commit ID */ 1075 + /** 1076 + * @j_failed_commit: Failed journal commit ID. 1077 + */ 1063 1078 unsigned int j_failed_commit; 1064 1079 1065 - /* 1080 + /** 1081 + * @j_private: 1082 + * 1066 1083 * An opaque pointer to fs-private information. ext3 puts its 1067 - * superblock pointer here 1084 + * superblock pointer here. 1068 1085 */ 1069 1086 void *j_private; 1070 1087 1071 - /* Reference to checksum algorithm driver via cryptoapi */ 1088 + /** 1089 + * @j_chksum_driver: 1090 + * 1091 + * Reference to checksum algorithm driver via cryptoapi. 1092 + */ 1072 1093 struct crypto_shash *j_chksum_driver; 1073 1094 1074 - /* Precomputed journal UUID checksum for seeding other checksums */ 1095 + /** 1096 + * @j_csum_seed: 1097 + * 1098 + * Precomputed journal UUID checksum for seeding other checksums. 1099 + */ 1075 1100 __u32 j_csum_seed; 1076 1101 1077 1102 #ifdef CONFIG_DEBUG_LOCK_ALLOC 1078 - /* 1103 + /** 1104 + * @j_trans_commit_map: 1105 + * 1079 1106 * Lockdep entity to track transaction commit dependencies. Handles 1080 1107 * hold this "lock" for read, when we wait for commit, we acquire the 1081 1108 * "lock" for writing. This matches the properties of jbd2 journalling