| From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| Date: Tue, 10 Apr 2018 17:54:32 +0200 |
| Subject: [PATCH] ntfs: don't disable interrupts during kmap_atomic() |
| |
| ntfs_end_buffer_async_read() disables interrupts around kmap_atomic(). This is |
| a leftover from the old kmap_atomic() implementation which relied on fixed |
| mapping slots, so the caller had to make sure that the same slot could not be |
| reused from an interrupting context. |
| |
| kmap_atomic() was changed to dynamic slots long ago and commit 1ec9c5ddc17a |
| ("include/linux/highmem.h: remove the second argument of k[un]map_atomic()") |
| removed the slot assignements, but the callers were not checked for now |
| redundant interrupt disabling. |
| |
| Remove the conditional interrupt disable. |
| |
| Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| --- |
| fs/ntfs/aops.c | 4 ---- |
| 1 file changed, 4 deletions(-) |
| |
| --- a/fs/ntfs/aops.c |
| +++ b/fs/ntfs/aops.c |
| @@ -93,13 +93,11 @@ static void ntfs_end_buffer_async_read(s |
| ofs = 0; |
| if (file_ofs < init_size) |
| ofs = init_size - file_ofs; |
| - local_irq_save(flags); |
| kaddr = kmap_atomic(page); |
| memset(kaddr + bh_offset(bh) + ofs, 0, |
| bh->b_size - ofs); |
| flush_dcache_page(page); |
| kunmap_atomic(kaddr); |
| - local_irq_restore(flags); |
| } |
| } else { |
| clear_buffer_uptodate(bh); |
| @@ -146,13 +144,11 @@ static void ntfs_end_buffer_async_read(s |
| recs = PAGE_SIZE / rec_size; |
| /* Should have been verified before we got here... */ |
| BUG_ON(!recs); |
| - local_irq_save(flags); |
| kaddr = kmap_atomic(page); |
| for (i = 0; i < recs; i++) |
| post_read_mst_fixup((NTFS_RECORD*)(kaddr + |
| i * rec_size), rec_size); |
| kunmap_atomic(kaddr); |
| - local_irq_restore(flags); |
| flush_dcache_page(page); |
| if (likely(page_uptodate && !PageError(page))) |
| SetPageUptodate(page); |