Hi Jan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to v5.3-rc3 next-20190807] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Jan-Kara/jbd2-Bit-spinlock-conversions/20190804-170656 config: i386-randconfig-h002-201931 (attached as .config) compiler: gcc-7 (Debian 7.4.0-10) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): In file included from <command-line>:0:0: >> include/linux/journal-head.h:29:2: error: unknown type name 'spinlock_t' spinlock_t b_state_lock; ^~~~~~~~~~ vim +/spinlock_t +29 include/linux/journal-head.h 19 20 struct journal_head { 21 /* 22 * Points back to our buffer_head. [jbd_lock_bh_journal_head()] 23 */ 24 struct buffer_head *b_bh; 25 26 /* 27 * Protect the buffer head state 28 */ > 29 spinlock_t b_state_lock; 30 31 /* 32 * Reference count - see description in journal.c 33 * [jbd_lock_bh_journal_head()] 34 */ 35 int b_jcount; 36 37 /* 38 * Journalling list for this buffer [b_state_lock] 39 * NOTE: We *cannot* combine this with b_modified into a bitfield 40 * as gcc would then (which the C standard allows but which is 41 * very unuseful) make 64-bit accesses to the bitfield and clobber 42 * b_jcount if its update races with bitfield modification. 43 */ 44 unsigned b_jlist; 45 46 /* 47 * This flag signals the buffer has been modified by 48 * the currently running transaction 49 * [b_state_lock] 50 */ 51 unsigned b_modified; 52 53 /* 54 * Copy of the buffer data frozen for writing to the log. 55 * [b_state_lock] 56 */ 57 char *b_frozen_data; 58 59 /* 60 * Pointer to a saved copy of the buffer containing no uncommitted 61 * deallocation references, so that allocations can avoid overwriting 62 * uncommitted deletes. [b_state_lock] 63 */ 64 char *b_committed_data; 65 66 /* 67 * Pointer to the compound transaction which owns this buffer's 68 * metadata: either the running transaction or the committing 69 * transaction (if there is one). Only applies to buffers on a 70 * transaction's data or metadata journaling list. 71 * [j_list_lock] [b_state_lock] 72 * Either of these locks is enough for reading, both are needed for 73 * changes. 74 */ 75 transaction_t *b_transaction; 76 77 /* 78 * Pointer to the running compound transaction which is currently 79 * modifying the buffer's metadata, if there was already a transaction 80 * committing it when the new transaction touched it. 81 * [t_list_lock] [b_state_lock] 82 */ 83 transaction_t *b_next_transaction; 84 85 /* 86 * Doubly-linked list of buffers on a transaction's data, metadata or 87 * forget queue. [t_list_lock] [b_state_lock] 88 */ 89 struct journal_head *b_tnext, *b_tprev; 90 91 /* 92 * Pointer to the compound transaction against which this buffer 93 * is checkpointed. Only dirty buffers can be checkpointed. 94 * [j_list_lock] 95 */ 96 transaction_t *b_cp_transaction; 97 98 /* 99 * Doubly-linked list of buffers still remaining to be flushed 100 * before an old transaction can be checkpointed. 101 * [j_list_lock] 102 */ 103 struct journal_head *b_cpnext, *b_cpprev; 104 105 /* Trigger type */ 106 struct jbd2_buffer_trigger_type *b_triggers; 107 108 /* Trigger type for the committing transaction's frozen data */ 109 struct jbd2_buffer_trigger_type *b_frozen_triggers; 110 }; 111 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip