mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
nobh: nobh_write_end fix
This path mustn't have been tested :( I did attempt to exercise it
by injecting failures here, but I suspect PageMappedToDisk may have
been getting in the way. Will need more of a look, although I think
nobh mode is OK for an -rc1 (it shouldn't eat anyone's data).
Commit 03158cd7eb
("fs: restore nobh")
introcduced a NULL deref. Spotted by the Coverity checker.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Badari Pulavarty <pbadari@us.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
cfa76f024f
commit
efdc31319d
@ -2563,7 +2563,7 @@ int nobh_write_end(struct file *file, struct address_space *mapping,
|
||||
struct page *page, void *fsdata)
|
||||
{
|
||||
struct inode *inode = page->mapping->host;
|
||||
struct buffer_head *head = NULL;
|
||||
struct buffer_head *head = fsdata;
|
||||
struct buffer_head *bh;
|
||||
|
||||
if (!PageMappedToDisk(page)) {
|
||||
@ -2584,7 +2584,6 @@ int nobh_write_end(struct file *file, struct address_space *mapping,
|
||||
unlock_page(page);
|
||||
page_cache_release(page);
|
||||
|
||||
head = fsdata;
|
||||
while (head) {
|
||||
bh = head;
|
||||
head = head->b_this_page;
|
||||
|
Loading…
Reference in New Issue
Block a user