Skip to contentSkip to conversation

fsfreeze: from uninterruptible to killable waiting

PATCH Superseded Marco Stornelli 2 participants 2 messages Apr 6, 2013 VFS

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover fsfreeze: from uninterruptible to killable waiting

Hi all,

with this patch series we try to change the fs freeze behavior in order to sleep in a killable state instead of sleeping in uninterruptible state. The patches are *NOT* tested because but a first review is welcome. The design is simply:

1) Internal fs operations are not changed from fsfreeze point of view, sb_start_intwrite is not changed;

2) sb_start_write and sb_start_pagefault now return a proper error code if the process receive SIGKILL and all the functions must manage this error and return EINTR or VM_FAULT_RETRY.

Marco Stornelli (4):
fsfreeze: add new internal __sb_start_write_wait
fsfreeze: manage kill signal when sb_start_write is called
fsfreeze: manage kill signal when sb_start_pagefault is called
fsfreeze: avoid to return zero in __get_user_pages

 fs/btrfs/file.c    |    9 +++++++--
 fs/btrfs/inode.c   |    4 +++-
 fs/buffer.c        |    4 +++-
 fs/cifs/file.c     |    4 +++-
 fs/ext4/inode.c    |    4 +++-
 fs/ext4/mmp.c      |    3 ++-
 fs/ext4/super.c    |    4 +++-
 fs/f2fs/file.c     |    4 +++-
 fs/fuse/file.c     |    4 +++-
 fs/gfs2/file.c     |    4 +++-
 fs/namespace.c     |    8 ++++++--
 fs/nilfs2/file.c   |    4 +++-
 fs/ntfs/file.c     |    4 +++-
 fs/ocfs2/file.c    |    4 +++-
 fs/ocfs2/mmap.c    |    4 +++-
 fs/open.c          |    8 ++++++--
 fs/splice.c        |    4 +++-
 fs/super.c         |   47 ++++++++++++++++++++++++++++++++++++++++-------
 fs/xfs/xfs_file.c  |    4 +++-
 include/linux/fs.h |   19 ++++++++++++-------
 mm/filemap.c       |   11 ++++++++---
 mm/filemap_xip.c   |    4 +++-
 mm/memory.c        |    2 +-
 23 files changed, 127 insertions(+), 40 deletions(-)
Signature · 2 lines
1.7.3.4
---
maintainer
#1 lore raw
Quoted 7 lines · Marco Stornelli

Hi all,

with this patch series we try to change the fs freeze behavior in order to sleep in a killable state instead of sleeping in uninterruptible state. The patches are *NOT* tested because but a first review is welcome. The design is simply:

Quoted 6 lines

1) Internal fs operations are not changed from fsfreeze point of view, sb_start_intwrite is not changed;

2) sb_start_write and sb_start_pagefault now return a proper error code if the process receive SIGKILL and all the functions must manage this error and return EINTR or VM_FAULT_RETRY.

sb_start_write() is done _way_ too deep in the call chain in the mainline; check the changes in -next, please.