xfs: mmap lock needs to be inside freeze protection
authorDave Chinner <dchinner@redhat.com>
Wed, 3 Jun 2015 23:18:18 +0000 (09:18 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 3 Jun 2015 23:18:18 +0000 (09:18 +1000)
commitec56b1f1fdc69599963574ce94cc5693d535dd64
treef24257a8fc533d11218caf0f4653cf30fa024d71
parent5ebe6afaf0057ac3eaeb98defd5456894b446d22
xfs: mmap lock needs to be inside freeze protection

Lock ordering for the new mmap lock needs to be:

mmap_sem
  sb_start_pagefault
    i_mmap_lock
      page lock
        <fault processsing>

Right now xfs_vm_page_mkwrite gets this the wrong way around,
While technically it cannot deadlock due to the current freeze
ordering, it's still a landmine that might explode if we change
anything in future. Hence we need to nest the locks correctly.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_file.c