1. 01 Mar, 2013 8 commits
    • Mike Snitzer's avatar
      dm thin: use block_size_is_power_of_two · 58f77a21
      Mike Snitzer authored
      
      
      Use block_size_is_power_of_two() rather than checking
      sectors_per_block_shift directly.  Also introduce local pool variable in
      get_bio_block() to eliminate redundant tc->pool dereferences.
      
      No functional change.
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      58f77a21
    • Mikulas Patocka's avatar
      dm bufio: use WRITE_FLUSH instead of REQ_FLUSH · 3daec3b4
      Mikulas Patocka authored
      
      
      Use WRITE_FLUSH instead of REQ_FLUSH for submitted requests to make it
      consistent with the rest of the kernel. There is no functional change.
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      3daec3b4
    • Wang Sheng-Hui's avatar
      dm table: remove superfluous variable reset · d2ce70a1
      Wang Sheng-Hui authored
      
      
      If allocation fails, the local var *t is not used any more after kfree.
      Don't need to reset it to NULL. Remove the unnecesary NULL set here.
      Signed-off-by: default avatarWang Sheng-Hui <shhuiw@gmail.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      d2ce70a1
    • Mike Snitzer's avatar
      dm thin: support a non power of 2 discard_granularity · f13945d7
      Mike Snitzer authored
      Support a non-power-of-2 discard granularity in dm-thin, now that the block
      layer supports this(via 8dd2cb7e "block:
      discard granularity might not be power of 2" and
      59771079
      
       "blk: avoid divide-by-zero with zero
      discard granularity").
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      f13945d7
    • Mikulas Patocka's avatar
      dm: fix truncated status strings · fd7c092e
      Mikulas Patocka authored
      
      
      Avoid returning a truncated table or status string instead of setting
      the DM_BUFFER_FULL_FLAG when the last target of a table fills the
      buffer.
      
      When processing a table or status request, the function retrieve_status
      calls ti->type->status. If ti->type->status returns non-zero,
      retrieve_status assumes that the buffer overflowed and sets
      DM_BUFFER_FULL_FLAG.
      
      However, targets don't return non-zero values from their status method
      on overflow. Most targets returns always zero.
      
      If a buffer overflow happens in a target that is not the last in the
      table, it gets noticed during the next iteration of the loop in
      retrieve_status; but if a buffer overflow happens in the last target, it
      goes unnoticed and erroneously truncated data is returned.
      
      In the current code, the targets behave in the following way:
      * dm-crypt returns -ENOMEM if there is not enough space to store the
        key, but it returns 0 on all other overflows.
      * dm-thin returns errors from the status method if a disk error happened.
        This is incorrect because retrieve_status doesn't check the error
        code, it assumes that all non-zero values mean buffer overflow.
      * all the other targets always return 0.
      
      This patch changes the ti->type->status function to return void (because
      most targets don't use the return code). Overflow is detected in
      retrieve_status: if the status method fills up the remaining space
      completely, it is assumed that buffer overflow happened.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      fd7c092e
    • Jun'ichi Nomura's avatar
      dm: do not replace bioset for request based dm · 16245bdc
      Jun'ichi Nomura authored
      This patch fixes a regression introduced in v3.8, which causes oops
      like this when dm-multipath is used:
      
      general protection fault: 0000 [#1] SMP
      RIP: 0010:[<ffffffff810fe754>]  [<ffffffff810fe754>] mempool_free+0x24/0xb0
      Call Trace:
        <IRQ>
        [<ffffffff81187417>] bio_put+0x97/0xc0
        [<ffffffffa02247a5>] end_clone_bio+0x35/0x90 [dm_mod]
        [<ffffffff81185efd>] bio_endio+0x1d/0x30
        [<ffffffff811f03a3>] req_bio_endio.isra.51+0xa3/0xe0
        [<ffffffff811f2f68>] blk_update_request+0x118/0x520
        [<ffffffff811f3397>] blk_update_bidi_request+0x27/0xa0
        [<ffffffff811f343c>] blk_end_bidi_request+0x2c/0x80
        [<ffffffff811f34d0>] blk_end_request+0x10/0x20
        [<ffffffffa000b32b>] scsi_io_completion+0xfb/0x6c0 [scsi_mod]
        [<ffffffffa000107d>] scsi_finish_command+0xbd/0x120 [scsi_mod]
        [<ffffffffa000b12f>] scsi_softirq_done+0x13f/0x160 [scsi_mod]
        [<ffffffff811f9fd0>] blk_done_softirq+0x80/0xa0
        [<ffffffff81044551>] __do_softirq+0xf1/0x250
        [<ffffffff8142ee8c>] call_softirq+0x1c/0x30
        [<ffffffff8100420d>] do_softirq+0x8d/0xc0
        [<ffffffff81044885>] irq_exit+0xd5/0xe0
        [<ffffffff8142f3e3>] do_IRQ+0x63/0xe0
        [<ffffffff814257af>] common_interrupt+0x6f/0x6f
        <EOI>
        [<ffffffffa021737c>] srp_queuecommand+0x8c/0xcb0 [ib_srp]
        [<ffffffffa0002f18>] scsi_dispatch_cmd+0x148/0x310 [scsi_mod]
        [<ffffffffa000a38e>] scsi_request_fn+0x31e/0x520 [scsi_mod]
        [<ffffffff811f1e57>] __blk_run_queue+0x37/0x50
        [<ffffffff811f1f69>] blk_delay_work+0x29/0x40
        [<ffffffff81059003>] process_one_work+0x1c3/0x5c0
        [<ffffffff8105b22e>] worker_thread+0x15e/0x440
        [<ffffffff8106164b>] kthread+0xdb/0xe0
        [<ffffffff8142db9c>] ret_from_fork+0x7c/0xb0
      
      The regression was introduced by the change
      c0820cf5
      
       "dm: introduce per_bio_data", where dm started to replace
      bioset during table replacement.
      For bio-based dm, it is good because clone bios do not exist during the
      table replacement.
      For request-based dm, however, (not-yet-mapped) clone bios may stay in
      request queue and survive during the table replacement.
      So freeing the old bioset could cause the oops in bio_put().
      
      Since the size of front_pad may change only with bio-based dm,
      it is not necessary to replace bioset for request-based dm.
      Reported-by: default avatarBart Van Assche <bvanassche@acm.org>
      Tested-by: default avatarBart Van Assche <bvanassche@acm.org>
      Signed-off-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
      Acked-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Acked-by: default avatarMike Snitzer <snitzer@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      16245bdc
    • Linus Torvalds's avatar
      Merge branch 'for-3.9' of git://linux-nfs.org/~bfields/linux · b6669737
      Linus Torvalds authored
      Pull nfsd changes from J Bruce Fields:
       "Miscellaneous bugfixes, plus:
      
         - An overhaul of the DRC cache by Jeff Layton.  The main effect is
           just to make it larger.  This decreases the chances of intermittent
           errors especially in the UDP case.  But we'll need to watch for any
           reports of performance regressions.
      
         - Containerized nfsd: with some limitations, we now support
           per-container nfs-service, thanks to extensive work from Stanislav
           Kinsbursky over the last year."
      
      Some notes about conflicts, since there were *two* non-data semantic
      conflicts here:
      
       - idr_remove_all() had been added by a memory leak fix, but has since
         become deprecated since idr_destroy() does it for us now.
      
       - xs_local_connect() had been added by this branch to make AF_LOCAL
         connections be synchronous, but in the meantime Trond had changed the
         calling convention in order to avoid a RCU dereference.
      
      There were a couple of more obvious actual source-level conflicts due to
      the hlist traversal changes and one just due to code changes next to
      each other, but those were trivial.
      
      * 'for-3.9' of git://linux-nfs.org/~bfields/linux: (49 commits)
        SUNRPC: make AF_LOCAL connect synchronous
        nfsd: fix compiler warning about ambiguous types in nfsd_cache_csum
        svcrpc: fix rpc server shutdown races
        svcrpc: make svc_age_temp_xprts enqueue under sv_lock
        lockd: nlmclnt_reclaim(): avoid stack overflow
        nfsd: enable NFSv4 state in containers
        nfsd: disable usermode helper client tracker in container
        nfsd: use proper net while reading "exports" file
        nfsd: containerize NFSd filesystem
        nfsd: fix comments on nfsd_cache_lookup
        SUNRPC: move cache_detail->cache_request callback call to cache_read()
        SUNRPC: remove "cache_request" argument in sunrpc_cache_pipe_upcall() function
        SUNRPC: rework cache upcall logic
        SUNRPC: introduce cache_detail->cache_request callback
        NFS: simplify and clean cache library
        NFS: use SUNRPC cache creation and destruction helper for DNS cache
        nfsd4: free_stid can be static
        nfsd: keep a checksum of the first 256 bytes of request
        sunrpc: trim off trailing checksum before returning decrypted or integrity authenticated buffer
        sunrpc: fix comment in struct xdr_buf definition
        ...
      b6669737
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 1cf0209c
      Linus Torvalds authored
      Pull Ceph updates from Sage Weil:
       "A few groups of patches here.  Alex has been hard at work improving
        the RBD code, layout groundwork for understanding the new formats and
        doing layering.  Most of the infrastructure is now in place for the
        final bits that will come with the next window.
      
        There are a few changes to the data layout.  Jim Schutt's patch fixes
        some non-ideal CRUSH behavior, and a set of patches from me updates
        the client to speak a newer version of the protocol and implement an
        improved hashing strategy across storage nodes (when the server side
        supports it too).
      
        A pair of patches from Sam Lang fix the atomicity of open+create
        operations.  Several patches from Yan, Zheng fix various mds/client
        issues that turned up during multi-mds torture tests.
      
        A final set of patches expose file layouts via virtual xattrs, and
        allow the policies to be set on directories via xattrs as well
        (avoiding the awkward ioctl interface and providing a consistent
        interface for both kernel mount and ceph-fuse users)."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (143 commits)
        libceph: add support for HASHPSPOOL pool flag
        libceph: update osd request/reply encoding
        libceph: calculate placement based on the internal data types
        ceph: update support for PGID64, PGPOOL3, OSDENC protocol features
        ceph: update "ceph_features.h"
        libceph: decode into cpu-native ceph_pg type
        libceph: rename ceph_pg -> ceph_pg_v1
        rbd: pass length, not op for osd completions
        rbd: move rbd_osd_trivial_callback()
        libceph: use a do..while loop in con_work()
        libceph: use a flag to indicate a fault has occurred
        libceph: separate non-locked fault handling
        libceph: encapsulate connection backoff
        libceph: eliminate sparse warnings
        ceph: eliminate sparse warnings in fs code
        rbd: eliminate sparse warnings
        libceph: define connection flag helpers
        rbd: normalize dout() calls
        rbd: barriers are hard
        rbd: ignore zero-length requests
        ...
      1cf0209c
  2. 28 Feb, 2013 32 commits
    • Linus Torvalds's avatar
      Merge tag 'writeback-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux · de1a2262
      Linus Torvalds authored
      Pull writeback fixes from Wu Fengguang:
       "Two writeback fixes
      
         - fix negative (setpoint - dirty) in 32bit archs
      
         - use down_read_trylock() in writeback_inodes_sb(_nr)_if_idle()"
      
      * tag 'writeback-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
        Negative (setpoint-dirty) in bdi_position_ratio()
        vfs: re-implement writeback_inodes_sb(_nr)_if_idle() and rename them
      de1a2262
    • Linus Torvalds's avatar
      Merge branch 'for-3.9/drivers' of git://git.kernel.dk/linux-block · f042fea0
      Linus Torvalds authored
      Pull block driver bits from Jens Axboe:
       "After the block IO core bits are in, please grab the driver updates
        from below as well.  It contains:
      
         - Fix ancient regression in dac960.  Nobody must be using that
           anymore...
      
         - Some good fixes from Guo Ghao for loop, fixing both potential
           oopses and deadlocks.
      
         - Improve mtip32xx for NUMA systems, by being a bit more clever in
           distributing work.
      
         - Add IBM RamSan 70/80 driver.  A second round of fixes for that is
           pending, that will come in through for-linus during the 3.9 cycle
           as per usual.
      
         - A few xen-blk{back,front} fixes from Konrad and Roger.
      
         - Other minor fixes and improvements."
      
      * 'for-3.9/drivers' of git://git.kernel.dk/linux-block:
        loopdev: ignore negative offset when calculate loop device size
        loopdev: remove an user triggerable oops
        loopdev: move common code into loop_figure_size()
        loopdev: update block device size in loop_set_status()
        loopdev: fix a deadlock
        xen-blkback: use balloon pages for persistent grants
        xen-blkfront: drop the use of llist_for_each_entry_safe
        xen/blkback: Don't trust the handle from the frontend.
        xen-blkback: do not leak mode property
        block: IBM RamSan 70/80 driver fixes
        rsxx: add slab.h include to dma.c
        drivers/block/mtip32xx: add missing GENERIC_HARDIRQS dependency
        block: remove new __devinit/exit annotations on ramsam driver
        block: IBM RamSan 70/80 device driver
        drivers/block/mtip32xx/mtip32xx.c:1726:5: sparse: symbol 'mtip_send_trim' was not declared. Should it be static?
        drivers/block/mtip32xx/mtip32xx.c:4029:1: sparse: symbol 'mtip_workq_sdbf0' was not declared. Should it be static?
        dac960: return success instead of -ENOTTY
        mtip32xx: add trim support
        mtip32xx: Add workqueue and NUMA support
        block: delete super ancient PC-XT driver for 1980's hardware
      f042fea0
    • Linus Torvalds's avatar
      Merge branch 'for-3.9/core' of git://git.kernel.dk/linux-block · ee89f812
      Linus Torvalds authored
      Pull block IO core bits from Jens Axboe:
       "Below are the core block IO bits for 3.9.  It was delayed a few days
        since my workstation kept crashing every 2-8h after pulling it into
        current -git, but turns out it is a bug in the new pstate code (divide
        by zero, will report separately).  In any case, it contains:
      
         - The big cfq/blkcg update from Tejun and and Vivek.
      
         - Additional block and writeback tracepoints from Tejun.
      
         - Improvement of the should sort (based on queues) logic in the plug
           flushing.
      
         - _io() variants of the wait_for_completion() interface, using
           io_schedule() instead of schedule() to contribute to io wait
           properly.
      
         - Various little fixes.
      
        You'll get two trivial merge conflicts, which should be easy enough to
        fix up"
      
      Fix up the trivial conflicts due to hlist traversal cleanups (commit
      b67bfe0d: "hlist: drop the node parameter from iterators").
      
      * 'for-3.9/core' of git://git.kernel.dk/linux-block: (39 commits)
        block: remove redundant check to bd_openers()
        block: use i_size_write() in bd_set_size()
        cfq: fix lock imbalance with failed allocations
        drivers/block/swim3.c: fix null pointer dereference
        block: don't select PERCPU_RWSEM
        block: account iowait time when waiting for completion of IO request
        sched: add wait_for_completion_io[_timeout]
        writeback: add more tracepoints
        block: add block_{touch|dirty}_buffer tracepoint
        buffer: make touch_buffer() an exported function
        block: add @req to bio_{front|back}_merge tracepoints
        block: add missing block_bio_complete() tracepoint
        block: Remove should_sort judgement when flush blk_plug
        block,elevator: use new hashtable implementation
        cfq-iosched: add hierarchical cfq_group statistics
        cfq-iosched: collect stats from dead cfqgs
        cfq-iosched: separate out cfqg_stats_reset() from cfq_pd_reset_stats()
        blkcg: make blkcg_print_blkgs() grab q locks instead of blkcg lock
        block: RCU free request_queue
        blkcg: implement blkg_[rw]stat_recursive_sum() and blkg_[rw]stat_merge()
        ...
      ee89f812
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 21f3b24d
      Linus Torvalds authored
      Pull first round of SCSI updates from James Bottomley:
       "The patch set is mostly driver updates (bnx2fc, ipr, lpfc, qla4) and a
        few bug fixes"
      
      Pull delayed because google hates James, and sneakily considers his pull
      requests spam. Why, google, why?
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (60 commits)
        [SCSI] aacraid: 1024 max outstanding command support for Series 7 and above
        [SCSI] bnx2fc: adjust duplicate test
        [SCSI] qla4xxx: Update driver version to 5.03.00-k4
        [SCSI] qla4xxx: Fix return code for qla4xxx_session_get_param.
        [SCSI] qla4xxx: wait for boot target login response during probe.
        [SCSI] qla4xxx: Added support for force firmware dump
        [SCSI] qla4xxx: Re-register IRQ handler while retrying initialize of adapter
        [SCSI] qla4xxx: Throttle active IOCBs to firmware limits
        [SCSI] qla4xxx: Remove unnecessary code from qla4xxx_init_local_data
        [SCSI] qla4xxx: Quiesce driver activities while loopback
        [SCSI] qla4xxx: Rename MBOX_ASTS_IDC_NOTIFY to MBOX_ASTS_IDC_REQUEST_NOTIFICATION
        [SCSI] qla4xxx: Add spurious interrupt messages under debug level 2
        [SCSI] cxgb4i: Remove the scsi host device when removing device
        [SCSI] bfa: fix strncpy() limiter in bfad_start_ops()
        [SCSI] qla4xxx: Update driver version to 5.03.00-k3
        [SCSI] qla4xxx: Correct the validation to check in get_sys_info mailbox
        [SCSI] qla4xxx: Pass correct function param to qla4_8xxx_rd_direct
        [SCSI] lpfc 8.3.37: Update lpfc version for 8.3.37 driver release
        [SCSI] lpfc 8.3.37: Fixed infinite loop in lpfc_sli4_fcf_rr_next_index_get.
        [SCSI] lpfc 8.3.37: Fixed crash due to SLI Port invalid resource count
        ...
      21f3b24d
    • J. Bruce Fields's avatar
      SUNRPC: make AF_LOCAL connect synchronous · dc107402
      J. Bruce Fields authored
      
      
      It doesn't appear that anyone actually needs to connect asynchronously.
      
      Also, using a workqueue for the connect means we lose the namespace
      information from the original process.  This is a problem since there's
      no way to explicitly pass in a filesystem namespace for resolution of an
      AF_LOCAL address.
      Acked-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      dc107402
    • Linus Torvalds's avatar
      Merge branch 'akpm' (final batch from Andrew) · 2a7d2b96
      Linus Torvalds authored
      Merge third patch-bumb from Andrew Morton:
       "This wraps me up for -rc1.
         - Lots of misc stuff and things which were deferred/missed from
           patchbombings 1 & 2.
         - ocfs2 things
         - lib/scatterlist
         - hfsplus
         - fatfs
         - documentation
         - signals
         - procfs
         - lockdep
         - coredump
         - seqfile core
         - kexec
         - Tejun's large IDR tree reworkings
         - ipmi
         - partitions
         - nbd
         - random() things
         - kfifo
         - tools/testing/selftests updates
         - Sasha's large and pointless hlist cleanup"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (163 commits)
        hlist: drop the node parameter from iterators
        kcmp: make it depend on CHECKPOINT_RESTORE
        selftests: add a simple doc
        tools/testing/selftests/Makefile: rearrange targets
        selftests/efivarfs: add create-read test
        selftests/efivarfs: add empty file creation test
        selftests: add tests for efivarfs
        kfifo: fix kfifo_alloc() and kfifo_init()
        kfifo: move kfifo.c from kernel/ to lib/
        arch Kconfig: centralise CONFIG_ARCH_NO_VIRT_TO_BUS
        w1: add support for DS2413 Dual Channel Addressable Switch
        memstick: move the dereference below the NULL test
        drivers/pps/clients/pps-gpio.c: use devm_kzalloc
        Documentation/DMA-API-HOWTO.txt: fix typo
        include/linux/eventfd.h: fix incorrect filename is a comment
        mtd: mtd_stresstest: use prandom_bytes()
        mtd: mtd_subpagetest: convert to use prandom library
        mtd: mtd_speedtest: use prandom_bytes
        mtd: mtd_pagetest: convert to use prandom library
        mtd: mtd_oobtest: convert to use prandom library
        ...
      2a7d2b96
    • Sasha Levin's avatar
      hlist: drop the node parameter from iterators · b67bfe0d
      Sasha Levin authored
      
      
      I'm not sure why, but the hlist for each entry iterators were conceived
      
              list_for_each_entry(pos, head, member)
      
      The hlist ones were greedy and wanted an extra parameter:
      
              hlist_for_each_entry(tpos, pos, head, member)
      
      Why did they need an extra pos parameter? I'm not quite sure. Not only
      they don't really need it, it also prevents the iterator from looking
      exactly like the list iterator, which is unfortunate.
      
      Besides the semantic patch, there was some manual work required:
      
       - Fix up the actual hlist iterators in linux/list.h
       - Fix up the declaration of other iterators based on the hlist ones.
       - A very small amount of places were using the 'node' parameter, this
       was modified to use 'obj->member' instead.
       - Coccinelle didn't handle the hlist_for_each_entry_safe iterator
       properly, so those had to be fixed up manually.
      
      The semantic patch which is mostly the work of Peter Senna Tschudin is here:
      
      @@
      iterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;
      
      type T;
      expression a,c,d,e;
      identifier b;
      statement S;
      @@
      
      -T b;
          <+... when != b
      (
      hlist_for_each_entry(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_continue(a,
      - b,
      c) S
      |
      hlist_for_each_entry_from(a,
      - b,
      c) S
      |
      hlist_for_each_entry_rcu(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_rcu_bh(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_continue_rcu_bh(a,
      - b,
      c) S
      |
      for_each_busy_worker(a, c,
      - b,
      d) S
      |
      ax25_uid_for_each(a,
      - b,
      c) S
      |
      ax25_for_each(a,
      - b,
      c) S
      |
      inet_bind_bucket_for_each(a,
      - b,
      c) S
      |
      sctp_for_each_hentry(a,
      - b,
      c) S
      |
      sk_for_each(a,
      - b,
      c) S
      |
      sk_for_each_rcu(a,
      - b,
      c) S
      |
      sk_for_each_from
      -(a, b)
      +(a)
      S
      + sk_for_each_from(a) S
      |
      sk_for_each_safe(a,
      - b,
      c, d) S
      |
      sk_for_each_bound(a,
      - b,
      c) S
      |
      hlist_for_each_entry_safe(a,
      - b,
      c, d, e) S
      |
      hlist_for_each_entry_continue_rcu(a,
      - b,
      c) S
      |
      nr_neigh_for_each(a,
      - b,
      c) S
      |
      nr_neigh_for_each_safe(a,
      - b,
      c, d) S
      |
      nr_node_for_each(a,
      - b,
      c) S
      |
      nr_node_for_each_safe(a,
      - b,
      c, d) S
      |
      - for_each_gfn_sp(a, c, d, b) S
      + for_each_gfn_sp(a, c, d) S
      |
      - for_each_gfn_indirect_valid_sp(a, c, d, b) S
      + for_each_gfn_indirect_valid_sp(a, c, d) S
      |
      for_each_host(a,
      - b,
      c) S
      |
      for_each_host_safe(a,
      - b,
      c, d) S
      |
      for_each_mesh_entry(a,
      - b,
      c, d) S
      )
          ...+>
      
      [akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]
      [akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]
      [akpm@linux-foundation.org: checkpatch fixes]
      [akpm@linux-foundation.org: fix warnings]
      [akpm@linux-foudnation.org: redo intrusive kvm changes]
      Tested-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Gleb Natapov <gleb@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b67bfe0d
    • Cyrill Gorcunov's avatar
      kcmp: make it depend on CHECKPOINT_RESTORE · 1e142b29
      Cyrill Gorcunov authored
      
      
      Since kcmp syscall has been implemented (initially on x86 architecture) a
      number of other archs wire it up as well: xtensa, sparc, sh, s390, mips,
      microblaze, m68k (not taking into account those who uses
      <asm-generic/unistd.h> for syscall numbers definitions).
      
      But the Makefile, which turns kcmp.o generation on still depends on former
      config-x86.  Thus get rid of this limitation and make kcmp.o depend on
      CHECKPOINT_RESTORE option.
      Signed-off-by: default avatarCyrill Gorcunov <gorcunov@openvz.org>
      Cc: Pavel Emelyanov <xemul@parallels.com>
      Cc: Andrey Vagin <avagin@openvz.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1e142b29
    • Jeremy Kerr's avatar
      selftests: add a simple doc · 80d03428
      Jeremy Kerr authored
      
      
      This change adds a little documentation to the tests under
      tools/testing/selftests/, based on akpm's explanation.
      
      [akpm@linux-foundation.org: move from Documentation to tools/testing/selftests/README.txt]
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      Cc: Dave Young <dyoung@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      80d03428
    • Andrew Morton's avatar
      tools/testing/selftests/Makefile: rearrange targets · 66a01b96
      Andrew Morton authored
      
      
      Do it one-per-line to reduce patch conflict pain.
      
      Cc: Dave Young <dyoung@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66a01b96
    • Jeremy Kerr's avatar
      selftests/efivarfs: add create-read test · d974f67a
      Jeremy Kerr authored
      
      
      Test that reads from a newly-created efivarfs file (with no data written)
      will return EOF.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: Lingzhu Xiang <lxiang@redhat.com>
      Cc: Dave Young <dyoung@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d974f67a
    • Jeremy Kerr's avatar
      selftests/efivarfs: add empty file creation test · 033a1a7f
      Jeremy Kerr authored
      
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: Lingzhu Xiang <lxiang@redhat.com>
      Cc: Dave Young <dyoung@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      033a1a7f
    • Jeremy Kerr's avatar
      selftests: add tests for efivarfs · 455ce1c7
      Jeremy Kerr authored
      
      
      This change adds a few initial efivarfs tests to the
      tools/testing/selftests directory.
      
      The open-unlink test is based on code from Lingzhu Xiang.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: Lingzhu Xiang <lxiang@redhat.com>
      Cc: Dave Young <dyoung@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      455ce1c7
    • Stefani Seibold's avatar
      kfifo: fix kfifo_alloc() and kfifo_init() · dfe2a77f
      Stefani Seibold authored
      
      
      Fix kfifo_alloc() and kfifo_init() to alloc at least the requested number
      of elements.  Since the kfifo operates on power of 2 the request size will
      be rounded up to the next power of two.
      Signed-off-by: default avatarStefani Seibold <stefani@seibold.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dfe2a77f
    • Stefani Seibold's avatar
      kfifo: move kfifo.c from kernel/ to lib/ · c759b35e
      Stefani Seibold authored
      
      
      Move kfifo.c from kernel/ to lib/
      Signed-off-by: default avatarStefani Seibold <stefani@seibold.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c759b35e
    • Stephen Rothwell's avatar
      arch Kconfig: centralise CONFIG_ARCH_NO_VIRT_TO_BUS · 887cbce0
      Stephen Rothwell authored
      
      
      Change it to CONFIG_HAVE_VIRT_TO_BUS and set it in all architecures
      that already provide virt_to_bus().
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Reviewed-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: H Hartley Sweeten <hartleys@visionengravers.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      887cbce0
    • Mariusz Bialonczyk's avatar
      w1: add support for DS2413 Dual Channel Addressable Switch · 31b4ca3e
      Mariusz Bialonczyk authored
      
      
      Also fixes some whitespace inconsistency in Kconfig and w1_family.h when
      DS2408 chip support was added.
      Signed-off-by: default avatarMariusz Bialonczyk <manio@skyboo.net>
      Acked-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      31b4ca3e
    • Wei Yongjun's avatar
      memstick: move the dereference below the NULL test · 940da353
      Wei Yongjun authored
      The dereference should be moved below the NULL test.
      
      spatch with a semantic match is used to found this.
      (http://coccinelle.lip6.fr/
      
      )
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Cc: Maxim Levitsky <maximlevitsky@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      940da353
    • Julia Lawall's avatar
      drivers/pps/clients/pps-gpio.c: use devm_kzalloc · 507063b2
      Julia Lawall authored
      
      
      devm_kzalloc allocates memory that is released when a driver detaches.
      This patch uses devm_kzalloc for data that is allocated in the probe
      function of a platform device and is only freed in the remove function.
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Cc: Rodolfo Giometti <giometti@enneenne.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      507063b2
    • Andrew Morton's avatar
      Documentation/DMA-API-HOWTO.txt: fix typo · 11cd3db0
      Andrew Morton authored
      
      
      Noted by Jesper
      
      Cc: Jesper Juhl <jj@chaosbits.net>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Shuah Khan <shuah.khan@hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      11cd3db0
    • Martin Sustrik's avatar
      include/linux/eventfd.h: fix incorrect filename is a comment · 1d730c49
      Martin Sustrik authored
      
      
      Comment in eventfd.h referred to 'include/asm-generic/fcntl.h'
      while the correct path is 'include/uapi/asm-generic/fcntl.h'.
      Signed-off-by: default avatarMartin Sustrik <sustrik@250bpm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1d730c49
    • Akinobu Mita's avatar
      mtd: mtd_stresstest: use prandom_bytes() · 4debec7a
      Akinobu Mita authored
      
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4debec7a
    • Akinobu Mita's avatar
      mtd: mtd_subpagetest: convert to use prandom library · a312b78b
      Akinobu Mita authored
      
      
      This removes home-brewed pseudo-random number generator and use
      prandom library.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a312b78b
    • Akinobu Mita's avatar
      mtd: mtd_speedtest: use prandom_bytes · 99672f32
      Akinobu Mita authored
      
      
      Use prandom_bytes instead of equivalent local function.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      99672f32
    • Akinobu Mita's avatar
      mtd: mtd_pagetest: convert to use prandom library · 825b8ccb
      Akinobu Mita authored
      
      
      This removes home-brewed pseudo-random number generator and use
      prandom library.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      825b8ccb
    • Akinobu Mita's avatar
      mtd: mtd_oobtest: convert to use prandom library · 8dad0498
      Akinobu Mita authored
      
      
      This removes home-brewed pseudo-random number generator and use
      prandom library.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8dad0498
    • Akinobu Mita's avatar
      mtd: mtd_nandecctest: use prandom_bytes instead of get_random_bytes() · 459a86d8
      Akinobu Mita authored
      
      
      Using prandom_bytes() is enough.  Because this data is only used
      for testing, not used for cryptographic use.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      459a86d8
    • Yuanhan Liu's avatar
      kernel/utsname.c: fix wrong comment about clone_uts_ns() · bf531536
      Yuanhan Liu authored
      
      
      Fix the wrong comment about the return value of clone_uts_ns()
      Signed-off-by: default avatarYuanhan Liu <yuanhan.liu@linux.intel.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bf531536
    • Alex Elder's avatar
      nbd: fix sparse warning · 398eb085
      Alex Elder authored
      
      
      I just fixed this in "drivers/block/rbd.c" and I noticed that
      "drivers/block/nbd.c" has the same problem.  Fix a warning issued by
      sparse by adding some lockdep annotations to indicate the queue lock gets
      dropped (because it's held when do_nbd_request() is called) and
      re-acquired within the function.
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Cc: Paul Clements <paul.clements@steeleye.com>
      Cc: Paul Clements <paul.clements@us.sios.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      398eb085
    • Wouter Verhelst's avatar
      nbd: update documentation and link to mailinglist · 5e4b269b
      Wouter Verhelst authored
      
      
      Documentation/blockdev/nbd.txt contained some documentation which was
      horribly outdated and probably still dates from the original patch that
      added NBD support to the kernel.
      
      This patch removes the useless and outdated bits.  The tools on nbd.sf.net
      are fully documented in manpages, which is where documentation for the
      non-kernel bits should live.
      
      Additionally, add a reference to the MAINTAINERS file for the nbd-general
      mailinglist that is used for discussion of the userland tools and the
      kernel module already.
      Signed-off-by: default avatarWouter Verhelst <w@uter.be>
      Cc: Paul Clements <Paul.Clements@steeleye.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5e4b269b
    • Paolo Bonzini's avatar
      nbd: show read-only state in sysfs · a83e814b
      Paolo Bonzini authored
      
      
      Pass the read-only flag to set_device_ro, so that it will be visible to
      the block layer and in sysfs.
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Cc: Paul Clements <Paul.Clements@steeleye.com>
      Cc: Alex Bligh <alex@alex.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a83e814b
    • Paolo Bonzini's avatar
      nbd: fsync and kill block device on shutdown · 3a2d63f8
      Paolo Bonzini authored
      
      
      There are two problems with shutdown in the NBD driver.
      
      1: Receiving the NBD_DISCONNECT ioctl does not sync the filesystem.
      
         This patch adds the sync operation into __nbd_ioctl()'s
         NBD_DISCONNECT handler.  This is useful because BLKFLSBUF is restricted
         to processes that have CAP_SYS_ADMIN, and the NBD client may not
         possess it (fsync of the block device does not sync the filesystem,
         either).
      
      2: Once we clear the socket we have no guarantee that later reads will
         come from the same backing storage.
      
         The patch adds calls to kill_bdev() in __nbd_ioctl()'s socket
         clearing code so the page cache is cleaned, lest reads that hit on the
         page cache will return stale data from the previously-accessible disk.
      
      Example:
      
          # qemu-nbd -r -c/dev/nbd0 /dev/sr0
          # file -s /dev/nbd0
          /dev/stdin: # UDF filesystem data (version 1.5) etc.
          # qemu-nbd -d /dev/nbd0
          # qemu-nbd -r -c/dev/nbd0 /dev/sda
          # file -s /dev/nbd0
          /dev/stdin: # UDF filesystem data (version 1.5) etc.
      
      While /dev/sda has:
      
          # file -s /dev/sda
          /dev/sda: x86 boot sector; etc.
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Acked-by: default avatarPaul Clements <Paul.Clements@steeleye.com>
      Cc: Alex Bligh <alex@alex.org.uk>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3a2d63f8