lkml.org 
[lkml]   [2015]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[RFC PATCH 2/2] fs: Disable interrupts after acquiring bit_spin_lock
Date
Signed-off-by: Nikolay Borisov <kernel@kyup.com>
---
fs/buffer.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 82283ab..7109d6a 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -305,8 +305,8 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
* decide that the page is now completely done.
*/
first = page_buffers(page);
- local_irq_save(flags);
bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
+ local_irq_save(flags);
clear_buffer_async_read(bh);
unlock_buffer(bh);
tmp = bh;
@@ -319,8 +319,8 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
}
tmp = tmp->b_this_page;
} while (tmp != bh);
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);

/*
* If none of the buffers had errors and they are all
@@ -332,8 +332,8 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
return;

still_busy:
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
return;
}

@@ -362,8 +362,8 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
}

first = page_buffers(page);
- local_irq_save(flags);
bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
+ local_irq_save(flags);

clear_buffer_async_write(bh);
unlock_buffer(bh);
@@ -375,14 +375,14 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
}
tmp = tmp->b_this_page;
}
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
end_page_writeback(page);
return;

still_busy:
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
return;
}
EXPORT_SYMBOL(end_buffer_async_write);
--
2.5.0


\
 
 \ /
  Last update: 2015-10-08 17:41    [W:0.505 / U:0.224 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site