• Sha Zhengju's avatar
    ceph: use vfs __set_page_dirty_nobuffers interface instead of doing it inside filesystem · 7d6e1f54
    Sha Zhengju authored
    Following we will begin to add memcg dirty page accounting around
    __set_page_dirty_{buffers,nobuffers} in vfs layer, so we'd better use vfs interface to
    avoid exporting those details to filesystems.
    
    Since vfs set_page_dirty() should be called under page lock, here we don't need elaborate
    codes to handle racy anymore, and two WARN_ON() are added to detect such exceptions.
    Thanks very much for Sage and Yan Zheng's coaching!
    
    I tested it in a two server's ceph environment that one is client and the other is
    mds/osd/mon, and run the following fsx test from xfstests:
    
      ./fsx   1MB -N 50000 -p 10000 -l 1048576
      ./fsx  10MB -N 50000 -p 10000 -l 10485760
      ./fsx 100MB -N 50000 -p 10000 -l 104857600
    
    The fsx does lots of mmap-read/mmap-write/truncate operations and the tests completed
    successfully without triggering any of WARN_ON.
    Signed-off-by: default avatarSha Zhengju <handai.szj@taobao.com>
    Reviewed-by: default avatarSage Weil <sage@inktank.com>
    7d6e1f54
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
addr.c Loading commit data...
caps.c Loading commit data...
ceph_frag.c Loading commit data...
debugfs.c Loading commit data...
dir.c Loading commit data...
export.c Loading commit data...
file.c Loading commit data...
inode.c Loading commit data...
ioctl.c Loading commit data...
ioctl.h Loading commit data...
locks.c Loading commit data...
mds_client.c Loading commit data...
mds_client.h Loading commit data...
mdsmap.c Loading commit data...
snap.c Loading commit data...
strings.c Loading commit data...
super.c Loading commit data...
super.h Loading commit data...
xattr.c Loading commit data...