]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - mm/filemap.c
ARM: dts: sun6i: Add ir_clk node
[karo-tx-linux.git] / mm / filemap.c
index 14b4642279f1260e6bbd6a6b73b0518ee377acd1..bd8543c6508fd8dfd9e6fce5f4884d1d6ab0b5bb 100644 (file)
 /*
  * Lock ordering:
  *
- *  ->i_mmap_mutex             (truncate_pagecache)
+ *  ->i_mmap_rwsem             (truncate_pagecache)
  *    ->private_lock           (__free_pte->__set_page_dirty_buffers)
  *      ->swap_lock            (exclusive_swap_page, others)
  *        ->mapping->tree_lock
  *
  *  ->i_mutex
- *    ->i_mmap_mutex           (truncate->unmap_mapping_range)
+ *    ->i_mmap_rwsem           (truncate->unmap_mapping_range)
  *
  *  ->mmap_sem
- *    ->i_mmap_mutex
+ *    ->i_mmap_rwsem
  *      ->page_table_lock or pte_lock  (various, mainly in memory.c)
  *        ->mapping->tree_lock (arch-dependent flush_dcache_mmap_lock)
  *
@@ -85,7 +85,7 @@
  *    sb_lock                  (fs/fs-writeback.c)
  *    ->mapping->tree_lock     (__sync_single_inode)
  *
- *  ->i_mmap_mutex
+ *  ->i_mmap_rwsem
  *    ->anon_vma.lock          (vma_adjust)
  *
  *  ->anon_vma.lock
  *    ->inode->i_lock          (zap_pte_range->set_page_dirty)
  *    ->private_lock           (zap_pte_range->__set_page_dirty_buffers)
  *
- * ->i_mmap_mutex
+ * ->i_mmap_rwsem
  *   ->tasklist_lock            (memory_failure, collect_procs_ao)
  */
 
@@ -2464,7 +2464,7 @@ ssize_t generic_perform_write(struct file *file,
        /*
         * Copies from kernel address space cannot fail (NFSD is a big user).
         */
-       if (segment_eq(get_fs(), KERNEL_DS))
+       if (!iter_is_iovec(i))
                flags |= AOP_FLAG_UNINTERRUPTIBLE;
 
        do {