Merge branch 'akpm' (Andrew's patch-bomb)
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Aug 2012 02:25:39 +0000 (19:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Aug 2012 02:25:39 +0000 (19:25 -0700)
Merge Andrew's second set of patches:
 - MM
 - a few random fixes
 - a couple of RTC leftovers

* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (120 commits)
  rtc/rtc-88pm80x: remove unneed devm_kfree
  rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails
  mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables
  tmpfs: distribute interleave better across nodes
  mm: remove redundant initialization
  mm: warn if pg_data_t isn't initialized with zero
  mips: zero out pg_data_t when it's allocated
  memcg: gix memory accounting scalability in shrink_page_list
  mm/sparse: remove index_init_lock
  mm/sparse: more checks on mem_section number
  mm/sparse: optimize sparse_index_alloc
  memcg: add mem_cgroup_from_css() helper
  memcg: further prevent OOM with too many dirty pages
  memcg: prevent OOM with too many dirty pages
  mm: mmu_notifier: fix freed page still mapped in secondary MMU
  mm: memcg: only check anon swapin page charges for swap cache
  mm: memcg: only check swap cache pages for repeated charging
  mm: memcg: split swapin charge function into private and public part
  mm: memcg: remove needless !mm fixup to init_mm when charging
  mm: memcg: remove unneeded shmem charge type
  ...

19 files changed:
1  2 
Documentation/feature-removal-schedule.txt
arch/s390/defconfig
fs/nfs/Kconfig
fs/nfs/direct.c
fs/nfs/file.c
fs/nfs/inode.c
fs/nfs/internal.h
fs/nfs/pagelist.c
fs/nfs/read.c
fs/nfs/write.c
include/linux/fs.h
include/linux/nfs_fs.h
mm/mmap.c
net/core/dev.c
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/sunrpc/sched.c
net/sunrpc/xprtsock.c

Simple merge
diff --cc fs/nfs/Kconfig
Simple merge
diff --cc fs/nfs/direct.c
Simple merge
diff --cc fs/nfs/file.c
Simple merge
diff --cc fs/nfs/inode.c
Simple merge
Simple merge
Simple merge
diff --cc fs/nfs/read.c
Simple merge
diff --cc fs/nfs/write.c
Simple merge
Simple merge
Simple merge
diff --cc mm/mmap.c
Simple merge
diff --cc net/core/dev.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1927,9 -1925,47 +1927,48 @@@ static void xs_local_setup_socket(struc
  out:
        xprt_clear_connecting(xprt);
        xprt_wake_pending_tasks(xprt, status);
 +      current->flags &= ~PF_FSTRANS;
  }
  
+ #ifdef CONFIG_SUNRPC_SWAP
+ static void xs_set_memalloc(struct rpc_xprt *xprt)
+ {
+       struct sock_xprt *transport = container_of(xprt, struct sock_xprt,
+                       xprt);
+       if (xprt->swapper)
+               sk_set_memalloc(transport->inet);
+ }
+ /**
+  * xs_swapper - Tag this transport as being used for swap.
+  * @xprt: transport to tag
+  * @enable: enable/disable
+  *
+  */
+ int xs_swapper(struct rpc_xprt *xprt, int enable)
+ {
+       struct sock_xprt *transport = container_of(xprt, struct sock_xprt,
+                       xprt);
+       int err = 0;
+       if (enable) {
+               xprt->swapper++;
+               xs_set_memalloc(xprt);
+       } else if (xprt->swapper) {
+               xprt->swapper--;
+               sk_clear_memalloc(transport->inet);
+       }
+       return err;
+ }
+ EXPORT_SYMBOL_GPL(xs_swapper);
+ #else
+ static void xs_set_memalloc(struct rpc_xprt *xprt)
+ {
+ }
+ #endif
  static void xs_udp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock)
  {
        struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt);