File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -658,7 +658,9 @@ EXPORT_SYMBOL(generic_buffers_fsync);
658
658
void write_boundary_block (struct block_device * bdev ,
659
659
sector_t bblock , unsigned blocksize )
660
660
{
661
- struct buffer_head * bh = __find_get_block (bdev , bblock + 1 , blocksize );
661
+ struct buffer_head * bh ;
662
+
663
+ bh = __find_get_block_nonatomic (bdev , bblock + 1 , blocksize );
662
664
if (bh ) {
663
665
if (buffer_dirty (bh ))
664
666
write_dirty_buffer (bh , 0 );
@@ -1440,7 +1442,12 @@ EXPORT_SYMBOL(__find_get_block_nonatomic);
1440
1442
struct buffer_head * bdev_getblk (struct block_device * bdev , sector_t block ,
1441
1443
unsigned size , gfp_t gfp )
1442
1444
{
1443
- struct buffer_head * bh = __find_get_block (bdev , block , size );
1445
+ struct buffer_head * bh ;
1446
+
1447
+ if (gfpflags_allow_blocking (gfp ))
1448
+ bh = __find_get_block_nonatomic (bdev , block , size );
1449
+ else
1450
+ bh = __find_get_block (bdev , block , size );
1444
1451
1445
1452
might_alloc (gfp );
1446
1453
if (bh )
You can’t perform that action at this time.
0 commit comments