@@ -237,14 +237,14 @@ static void insert_ordered_extent(struct btrfs_ordered_extent *entry)
237237 /* One ref for the tree. */
238238 refcount_inc (& entry -> refs );
239239
240- spin_lock_irq (& inode -> ordered_tree_lock );
240+ spin_lock (& inode -> ordered_tree_lock );
241241 node = tree_insert (& inode -> ordered_tree , entry -> file_offset ,
242242 & entry -> rb_node );
243243 if (unlikely (node ))
244244 btrfs_panic (fs_info , - EEXIST ,
245245 "inconsistency in ordered tree at offset %llu" ,
246246 entry -> file_offset );
247- spin_unlock_irq (& inode -> ordered_tree_lock );
247+ spin_unlock (& inode -> ordered_tree_lock );
248248
249249 spin_lock (& root -> ordered_extent_lock );
250250 list_add_tail (& entry -> root_extent_list ,
@@ -328,9 +328,9 @@ void btrfs_add_ordered_sum(struct btrfs_ordered_extent *entry,
328328{
329329 struct btrfs_inode * inode = entry -> inode ;
330330
331- spin_lock_irq (& inode -> ordered_tree_lock );
331+ spin_lock (& inode -> ordered_tree_lock );
332332 list_add_tail (& sum -> list , & entry -> list );
333- spin_unlock_irq (& inode -> ordered_tree_lock );
333+ spin_unlock (& inode -> ordered_tree_lock );
334334}
335335
336336void btrfs_mark_ordered_extent_error (struct btrfs_ordered_extent * ordered )
@@ -417,15 +417,14 @@ void btrfs_finish_ordered_extent(struct btrfs_ordered_extent *ordered,
417417 bool uptodate )
418418{
419419 struct btrfs_inode * inode = ordered -> inode ;
420- unsigned long flags ;
421420 bool ret ;
422421
423422 trace_btrfs_finish_ordered_extent (inode , file_offset , len , uptodate );
424423
425- spin_lock_irqsave (& inode -> ordered_tree_lock , flags );
424+ spin_lock (& inode -> ordered_tree_lock );
426425 ret = can_finish_ordered_extent (ordered , folio , file_offset , len ,
427426 uptodate );
428- spin_unlock_irqrestore (& inode -> ordered_tree_lock , flags );
427+ spin_unlock (& inode -> ordered_tree_lock );
429428
430429 /*
431430 * If this is a COW write it means we created new extent maps for the
@@ -481,13 +480,12 @@ void btrfs_mark_ordered_io_finished(struct btrfs_inode *inode,
481480{
482481 struct rb_node * node ;
483482 struct btrfs_ordered_extent * entry = NULL ;
484- unsigned long flags ;
485483 u64 cur = file_offset ;
486484 const u64 end = file_offset + num_bytes ;
487485
488486 trace_btrfs_writepage_end_io_hook (inode , file_offset , end - 1 , uptodate );
489487
490- spin_lock_irqsave (& inode -> ordered_tree_lock , flags );
488+ spin_lock (& inode -> ordered_tree_lock );
491489 while (cur < end ) {
492490 u64 entry_end ;
493491 u64 this_end ;
@@ -539,13 +537,13 @@ void btrfs_mark_ordered_io_finished(struct btrfs_inode *inode,
539537 ASSERT (len < U32_MAX );
540538
541539 if (can_finish_ordered_extent (entry , folio , cur , len , uptodate )) {
542- spin_unlock_irqrestore (& inode -> ordered_tree_lock , flags );
540+ spin_unlock (& inode -> ordered_tree_lock );
543541 btrfs_queue_ordered_fn (entry );
544- spin_lock_irqsave (& inode -> ordered_tree_lock , flags );
542+ spin_lock (& inode -> ordered_tree_lock );
545543 }
546544 cur += len ;
547545 }
548- spin_unlock_irqrestore (& inode -> ordered_tree_lock , flags );
546+ spin_unlock (& inode -> ordered_tree_lock );
549547}
550548
551549/*
@@ -571,10 +569,9 @@ bool btrfs_dec_test_ordered_pending(struct btrfs_inode *inode,
571569{
572570 struct rb_node * node ;
573571 struct btrfs_ordered_extent * entry = NULL ;
574- unsigned long flags ;
575572 bool finished = false;
576573
577- spin_lock_irqsave (& inode -> ordered_tree_lock , flags );
574+ spin_lock (& inode -> ordered_tree_lock );
578575 if (cached && * cached ) {
579576 entry = * cached ;
580577 goto have_entry ;
@@ -611,7 +608,7 @@ bool btrfs_dec_test_ordered_pending(struct btrfs_inode *inode,
611608 refcount_inc (& entry -> refs );
612609 trace_btrfs_ordered_extent_dec_test_pending (inode , entry );
613610 }
614- spin_unlock_irqrestore (& inode -> ordered_tree_lock , flags );
611+ spin_unlock (& inode -> ordered_tree_lock );
615612 return finished ;
616613}
617614
@@ -676,15 +673,15 @@ void btrfs_remove_ordered_extent(struct btrfs_inode *btrfs_inode,
676673 percpu_counter_add_batch (& fs_info -> ordered_bytes , - entry -> num_bytes ,
677674 fs_info -> delalloc_batch );
678675
679- spin_lock_irq (& btrfs_inode -> ordered_tree_lock );
676+ spin_lock (& btrfs_inode -> ordered_tree_lock );
680677 node = & entry -> rb_node ;
681678 rb_erase (node , & btrfs_inode -> ordered_tree );
682679 RB_CLEAR_NODE (node );
683680 if (btrfs_inode -> ordered_tree_last == node )
684681 btrfs_inode -> ordered_tree_last = NULL ;
685682 set_bit (BTRFS_ORDERED_COMPLETE , & entry -> flags );
686683 pending = test_and_clear_bit (BTRFS_ORDERED_PENDING , & entry -> flags );
687- spin_unlock_irq (& btrfs_inode -> ordered_tree_lock );
684+ spin_unlock (& btrfs_inode -> ordered_tree_lock );
688685
689686 /*
690687 * The current running transaction is waiting on us, we need to let it
@@ -969,9 +966,8 @@ struct btrfs_ordered_extent *btrfs_lookup_ordered_extent(struct btrfs_inode *ino
969966{
970967 struct rb_node * node ;
971968 struct btrfs_ordered_extent * entry = NULL ;
972- unsigned long flags ;
973969
974- spin_lock_irqsave (& inode -> ordered_tree_lock , flags );
970+ spin_lock (& inode -> ordered_tree_lock );
975971 node = ordered_tree_search (inode , file_offset );
976972 if (!node )
977973 goto out ;
@@ -984,7 +980,7 @@ struct btrfs_ordered_extent *btrfs_lookup_ordered_extent(struct btrfs_inode *ino
984980 trace_btrfs_ordered_extent_lookup (inode , entry );
985981 }
986982out :
987- spin_unlock_irqrestore (& inode -> ordered_tree_lock , flags );
983+ spin_unlock (& inode -> ordered_tree_lock );
988984 return entry ;
989985}
990986
@@ -997,7 +993,7 @@ struct btrfs_ordered_extent *btrfs_lookup_ordered_range(
997993 struct rb_node * node ;
998994 struct btrfs_ordered_extent * entry = NULL ;
999995
1000- spin_lock_irq (& inode -> ordered_tree_lock );
996+ spin_lock (& inode -> ordered_tree_lock );
1001997 node = ordered_tree_search (inode , file_offset );
1002998 if (!node ) {
1003999 node = ordered_tree_search (inode , file_offset + len );
@@ -1024,7 +1020,7 @@ struct btrfs_ordered_extent *btrfs_lookup_ordered_range(
10241020 refcount_inc (& entry -> refs );
10251021 trace_btrfs_ordered_extent_lookup_range (inode , entry );
10261022 }
1027- spin_unlock_irq (& inode -> ordered_tree_lock );
1023+ spin_unlock (& inode -> ordered_tree_lock );
10281024 return entry ;
10291025}
10301026
@@ -1039,7 +1035,7 @@ void btrfs_get_ordered_extents_for_logging(struct btrfs_inode *inode,
10391035
10401036 btrfs_assert_inode_locked (inode );
10411037
1042- spin_lock_irq (& inode -> ordered_tree_lock );
1038+ spin_lock (& inode -> ordered_tree_lock );
10431039 for (n = rb_first (& inode -> ordered_tree ); n ; n = rb_next (n )) {
10441040 struct btrfs_ordered_extent * ordered ;
10451041
@@ -1053,7 +1049,7 @@ void btrfs_get_ordered_extents_for_logging(struct btrfs_inode *inode,
10531049 refcount_inc (& ordered -> refs );
10541050 trace_btrfs_ordered_extent_lookup_for_logging (inode , ordered );
10551051 }
1056- spin_unlock_irq (& inode -> ordered_tree_lock );
1052+ spin_unlock (& inode -> ordered_tree_lock );
10571053}
10581054
10591055/*
@@ -1066,7 +1062,7 @@ btrfs_lookup_first_ordered_extent(struct btrfs_inode *inode, u64 file_offset)
10661062 struct rb_node * node ;
10671063 struct btrfs_ordered_extent * entry = NULL ;
10681064
1069- spin_lock_irq (& inode -> ordered_tree_lock );
1065+ spin_lock (& inode -> ordered_tree_lock );
10701066 node = ordered_tree_search (inode , file_offset );
10711067 if (!node )
10721068 goto out ;
@@ -1075,7 +1071,7 @@ btrfs_lookup_first_ordered_extent(struct btrfs_inode *inode, u64 file_offset)
10751071 refcount_inc (& entry -> refs );
10761072 trace_btrfs_ordered_extent_lookup_first (inode , entry );
10771073out :
1078- spin_unlock_irq (& inode -> ordered_tree_lock );
1074+ spin_unlock (& inode -> ordered_tree_lock );
10791075 return entry ;
10801076}
10811077
@@ -1096,9 +1092,8 @@ struct btrfs_ordered_extent *btrfs_lookup_first_ordered_range(
10961092 struct rb_node * prev ;
10971093 struct rb_node * next ;
10981094 struct btrfs_ordered_extent * entry = NULL ;
1099- unsigned long flags ;
11001095
1101- spin_lock_irqsave (& inode -> ordered_tree_lock , flags );
1096+ spin_lock (& inode -> ordered_tree_lock );
11021097 node = inode -> ordered_tree .rb_node ;
11031098 /*
11041099 * Here we don't want to use tree_search() which will use tree->last
@@ -1153,7 +1148,7 @@ struct btrfs_ordered_extent *btrfs_lookup_first_ordered_range(
11531148 trace_btrfs_ordered_extent_lookup_first_range (inode , entry );
11541149 }
11551150
1156- spin_unlock_irqrestore (& inode -> ordered_tree_lock , flags );
1151+ spin_unlock (& inode -> ordered_tree_lock );
11571152 return entry ;
11581153}
11591154
@@ -1285,9 +1280,7 @@ struct btrfs_ordered_extent *btrfs_split_ordered_extent(
12851280 /*
12861281 * Take the root's ordered_extent_lock to avoid a race with
12871282 * btrfs_wait_ordered_extents() when updating the disk_bytenr and
1288- * disk_num_bytes fields of the ordered extent below. And we disable
1289- * IRQs because the inode's ordered_tree_lock is used in IRQ context
1290- * elsewhere.
1283+ * disk_num_bytes fields of the ordered extent below.
12911284 *
12921285 * There's no concern about a previous caller of
12931286 * btrfs_wait_ordered_extents() getting the trimmed ordered extent
0 commit comments