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:
Linus Torvalds 2009-04-21 08:27:30 -07:00
commit b33ecba033
2 changed files with 9 additions and 1 deletions

View File

@ -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);
}
/**

View File

@ -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;
}