On Wed 07-08-19 20:57:29, kbuild test robot wrote: > 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] Yeah, missing include of linux/spinlock.h. I'll send V2 of the series. Honza > > 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 -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR