mirror of https://gitee.com/openkylin/linux.git
Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes
* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes: GFS2: Fix page_mkwrite() return code GFS2: Clear dirty bit at end of inode glock sync
This commit is contained in:
commit
b33ecba033
|
@ -156,6 +156,12 @@ static void inode_go_sync(struct gfs2_glock *gl)
|
|||
error = filemap_fdatawait(metamapping);
|
||||
mapping_set_error(metamapping, error);
|
||||
gfs2_ail_empty_gl(gl);
|
||||
/*
|
||||
* Writeback of the data mapping may cause the dirty flag to be set
|
||||
* so we have to clear it again here.
|
||||
*/
|
||||
smp_mb__before_clear_bit();
|
||||
clear_bit(GLF_DIRTY, &gl->gl_flags);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -413,7 +413,9 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
|||
gfs2_glock_dq(&gh);
|
||||
out:
|
||||
gfs2_holder_uninit(&gh);
|
||||
if (ret)
|
||||
if (ret == -ENOMEM)
|
||||
ret = VM_FAULT_OOM;
|
||||
else if (ret)
|
||||
ret = VM_FAULT_SIGBUS;
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue