1. 26 1月, 2008 40 次提交
    • N
    • N
      ARM kprobes: don't let a single-stepped stmdb corrupt the exception stack · d30a0c8b
      Nicolas Pitre 提交于
      If kprobes installs a breakpoint on a "stmdb sp!, {...}" instruction,
      and then single-step it by simulation from the exception context, it will
      corrupt the saved regs on the stack from the previous context.
      
      To avoid this, let's add an optional parameter to the svc_entry macro
      allowing for a hole to be created on the stack before saving the
      interrupted context, and use it in the undef_svc handler when kprobes
      is enabled.
      Signed-off-by: NNicolas Pitre <nico@marvell.com>
      d30a0c8b
    • N
      25ce1dd7
    • A
      ARM kprobes: core code · 24ba613c
      Abhishek Sagar 提交于
      This is a full implementation of Kprobes including Jprobes and
      Kretprobes support.
      
      This ARM implementation does not follow the usual kprobes double-
      exception model. The traditional model is where the initial kprobes
      breakpoint calls kprobe_handler(), which returns from exception to
      execute the instruction in its original context, then immediately
      re-enters after a second breakpoint (or single-stepping exception)
      into post_kprobe_handler(), each time the probe is hit..  The ARM
      implementation only executes one kprobes exception per hit, so no
      post_kprobe_handler() phase. All side-effects from the kprobe'd
      instruction are resolved before returning from the initial exception.
      As a result, all instructions are _always_ effectively boosted
      regardless of the type of instruction, and even regardless of whether
      or not there is a post-handler for the probe.
      Signed-off-by: NAbhishek Sagar <sagar.abhishek@gmail.com>
      Signed-off-by: NQuentin Barnes <qbarnes@gmail.com>
      Signed-off-by: NNicolas Pitre <nico@marvell.com>
      24ba613c
    • Q
      ARM kprobes: instruction single-stepping support · 35aa1df4
      Quentin Barnes 提交于
      This is the code implementing instruction single-stepping for kprobes
      on ARM.
      
      To get around the limitation of no Next-PC and no hardware single-
      stepping, all kprobe'd instructions are split into three camps:
      simulation, emulation, and rejected. "Simulated" instructions are
      those instructions which behavior is reproduced by straight C code.
      "Emulated" instructions are ones that are copied, slightly altered
      and executed directly in the instruction slot to reproduce their
      behavior.  "Rejected" instructions are ones that could be simulated,
      but work hasn't been put into simulating them. These instructions
      should be very rare, if not unencountered, in the kernel. If ever
      needed, code could be added to simulate them.
      
      One might wonder why this and the ptrace singlestep facility are not
      sharing some code.  Both approaches are fundamentally different because
      the ptrace code regains control after the stepped instruction by installing
      a breakpoint after the instruction itself, and possibly at the location
      where the instruction might be branching to, instead of simulating or
      emulating the target instruction.
      
      The ptrace approach isn't suitable for kprobes because the breakpoints
      would have to be moved back, and the icache flushed, everytime the
      probe is hit to let normal code execution resume, which would have a
      significant performance impact. It is also racy on SMP since another
      CPU could, with the right timing, sail through the probe point without
      being caught.  Because ptrace single-stepping always result in a
      different process to be scheduled, the concern for performance is much
      less significant.
      
      On the other hand, the kprobes approach isn't (currently) suitable for
      ptrace because it has no provision for proper user space memory
      protection and translation, and even if that was implemented, the gain
      wouldn't be worth the added complexity in the ptrace path compared to
      the current approach.
      
      So, until kprobes does support user space, both kprobes and ptrace are
      best kept independent and separate.
      Signed-off-by: NQuentin Barnes <qbarnes@gmail.com>
      Signed-off-by: NAbhishek Sagar <sagar.abhishek@gmail.com>
      Signed-off-by: NNicolas Pitre <nico@marvell.com>
      35aa1df4
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 · 9b73e76f
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)
        [SCSI] usbstorage: use last_sector_bug flag universally
        [SCSI] libsas: abstract STP task status into a function
        [SCSI] ultrastor: clean up inline asm warnings
        [SCSI] aic7xxx: fix firmware build
        [SCSI] aacraid: fib context lock for management ioctls
        [SCSI] ch: remove forward declarations
        [SCSI] ch: fix device minor number management bug
        [SCSI] ch: handle class_device_create failure properly
        [SCSI] NCR5380: fix section mismatch
        [SCSI] sg: fix /proc/scsi/sg/devices when no SCSI devices
        [SCSI] IB/iSER: add logical unit reset support
        [SCSI] don't use __GFP_DMA for sense buffers if not required
        [SCSI] use dynamically allocated sense buffer
        [SCSI] scsi.h: add macro for enclosure bit of inquiry data
        [SCSI] sd: add fix for devices with last sector access problems
        [SCSI] fix pcmcia compile problem
        [SCSI] aacraid: add Voodoo Lite class of cards.
        [SCSI] aacraid: add new driver features flags
        [SCSI] qla2xxx: Update version number to 8.02.00-k7.
        [SCSI] qla2xxx: Issue correct MBC_INITIALIZE_FIRMWARE command.
        ...
      9b73e76f
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 50d9a126
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        [CRYPTO] hifn795x: Disallow built-in hifn795x when HW_RANDOM is m
      50d9a126
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 · 29bd17af
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (31 commits)
        ocfs2: clean up bh null checks
        ocfs2: document access rules for blocked_lock_list
        configfs: file.c fix possible recursive locking
        configfs: dir.c fix possible recursive locking
        configfs: Remove EXPERIMENTAL
        ocfs2: bump version number
        ocfs2/dlm: Clear joining_node on hearbeat node down
        ocfs2: convert byte order of constant instead of variable
        ocfs2: Update default cluster timeouts
        ocfs2: printf fixes
        ocfs2: Use generic_file_llseek
        ocfs2: Safer read_inline_data()
        ocfs2: Silence false lockdep warnings
        [PATCH 2/2] ocfs2: cluster aware flock()
        [PATCH 1/2] ocfs2: add flock lock type
        ocfs2: Local alloc window size changeable via mount option
        ocfs2: Support commit= mount option
        ocfs2: Add missing permission checks
        [PATCH 2/2] ocfs2: Implement group add for online resize
        [PATCH 1/2] ocfs2: Add group extend for online resize
        ...
      29bd17af
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 2ba14a01
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (67 commits)
        fix drivers/ata/sata_fsl.c double-decl
        [libata] Prefer SCSI_SENSE_BUFFERSIZE to sizeof()
        pata_legacy: Merge winbond support
        ata_generic: Cenatek support
        pata_winbond: error return
        pata_serverworks: Fix cable types and cosmetics
        pata_mpc52xx: remove un-needed assignment
        libata: fix off-by-one in error categorization
        ahci: factor out AHCI enabling and enable AHCI before reading CAP
        ata_piix: implement SIDPR SCR access
        ata_piix: convert to prepare - activate initialization
        libata: factor out ata_pci_activate_sff_host() from ata_pci_one()
        [libata] Prefer SCSI_SENSE_BUFFERSIZE to sizeof()
        pata_legacy: resychronize with upstream changes and resubmit
        [libata] pata_legacy: typo fix
        [libata] pata_winbond: update for new ->data_xfer hook
        pata_pcmcia: convert to new data_xfer prototype
        libata annotations and fixes
        libata: use dev_driver_string() instead of "libata" in libata-sff.c
        ata_piix: kill unused constants and flags
        ...
      2ba14a01
    • M
      ocfs2: clean up bh null checks · 2fe5c1d7
      Mark Fasheh 提交于
      If we know a buffer_head is non-null, then brelse() is unnecessary and
      put_bh() can be used instead. Also, an explicit check for NULL is
      unnecessary when using brelse(). This patch only covers buffer_head_io.c and
      resize.c, which have recently added code which exhibits this problem.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      2fe5c1d7
    • M
      ocfs2: document access rules for blocked_lock_list · 7ec373cf
      Mark Fasheh 提交于
      ocfs2_super->blocked_lock_list and ocfs2_super->blocked_lock_count have some
      usage restrictions which aren't immediately obvious to anyone reading the
      code. It's a good idea to document this so that we avoid making costly
      mistakes in the future.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      7ec373cf
    • J
      configfs: file.c fix possible recursive locking · 116ba5d5
      Joonwoo Park 提交于
      configfs_register_subsystem() with default_groups triggers recursive locking.
      it seems that mutex_lock_nested is needed.
      
      =============================================
      [ INFO: possible recursive locking detected ]
      2.6.24-rc6 #145
      ---------------------------------------------
      swapper/1 is trying to acquire lock:
       (&sb->s_type->i_mutex_key#3){--..}, at: [<c40c9a9e>] configfs_add_file+0x2e/0x70
      
      but task is already holding lock:
       (&sb->s_type->i_mutex_key#3){--..}, at: [<c40ca985>] configfs_register_subsystem+0x55/0x130
      
      other info that might help us debug this:
      1 lock held by swapper/1:
       #0:  (&sb->s_type->i_mutex_key#3){--..}, at: [<c40ca985>] configfs_register_subsystem+0x55/0x130
      
      stack backtrace:
      Pid: 1, comm: swapper Not tainted 2.6.24-rc6 #145
       [<c40053ba>] show_trace_log_lvl+0x1a/0x30
       [<c4005e82>] show_trace+0x12/0x20
       [<c400687e>] dump_stack+0x6e/0x80
       [<c404ec72>] __lock_acquire+0xe62/0x1120
       [<c404efb2>] lock_acquire+0x82/0xa0
       [<c43fda88>] mutex_lock_nested+0x98/0x2e0
       [<c40c9a9e>] configfs_add_file+0x2e/0x70
       [<c40c9b0c>] configfs_create_file+0x2c/0x40
       [<c40ca639>] configfs_attach_item+0x139/0x220
       [<c40ca734>] configfs_attach_group+0x14/0x140
       [<c40ca7e9>] configfs_attach_group+0xc9/0x140
       [<c40ca9f6>] configfs_register_subsystem+0xc6/0x130
       [<c45c8186>] init_netconsole+0x2b6/0x300
       [<c45a75f2>] kernel_init+0x142/0x320
       [<c4004fb3>] kernel_thread_helper+0x7/0x14
       =======================
      Signed-off-by: NJoonwoo Park <joonwpark81@gmail.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      116ba5d5
    • J
      configfs: dir.c fix possible recursive locking · ba611edf
      Joonwoo Park 提交于
      configfs_register_subsystem() with default_groups triggers recursive locking.
      it seems that mutex_lock_nested is needed.
      
      =============================================
      [ INFO: possible recursive locking detected ]
      2.6.24-rc6 #141
      ---------------------------------------------
      swapper/1 is trying to acquire lock:
       (&sb->s_type->i_mutex_key#3){--..}, at: [<c40ca76f>] configfs_attach_group+0x4f/0x190
      
      but task is already holding lock:
       (&sb->s_type->i_mutex_key#3){--..}, at: [<c40ca9d5>] configfs_register_subsystem+0x55/0x130
      
      other info that might help us debug this:
      1 lock held by swapper/1:
       #0:  (&sb->s_type->i_mutex_key#3){--..}, at: [<c40ca9d5>] configfs_register_subsystem+0x55/0x130
      
      stack backtrace:
      Pid: 1, comm: swapper Not tainted 2.6.24-rc6 #141
       [<c40053ba>] show_trace_log_lvl+0x1a/0x30
       [<c4005e82>] show_trace+0x12/0x20
       [<c400687e>] dump_stack+0x6e/0x80
       [<c404ec72>] __lock_acquire+0xe62/0x1120
       [<c404efb2>] lock_acquire+0x82/0xa0
       [<c43fdad8>] mutex_lock_nested+0x98/0x2e0
       [<c40ca76f>] configfs_attach_group+0x4f/0x190
       [<c40caa46>] configfs_register_subsystem+0xc6/0x130
       [<c45c8186>] init_netconsole+0x2b6/0x300
       [<c45a75f2>] kernel_init+0x142/0x320
       [<c4004fb3>] kernel_thread_helper+0x7/0x14
       =======================
      Signed-off-by: NJoonwoo Park <joonwpark81@gmail.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      ba611edf
    • J
      configfs: Remove EXPERIMENTAL · 02ac0499
      Joel Becker 提交于
      configfs has been alive and kicking for a while now.  It underpins some
      non-EXPERIMENTAL subsystems, such as OCFS2's cluster stack.
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      02ac0499
    • M
      ocfs2: bump version number · 0e5ae032
      Mark Fasheh 提交于
      Bump the printed version to 1.5.0. This helps us quickly identify which
      version of Ocfs2 a bug filer is running.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      0e5ae032
    • T
      ocfs2/dlm: Clear joining_node on hearbeat node down · 2d4b1cbb
      Tao Ma 提交于
      Currently the process of dlm join contains 2 steps: query join and assert join.
      After query join, the joined node will set its joining_node. So if the joining
      node happens to panic before the 2nd step, the joined node will fail to clear
      its joining_node flag because that node isn't in the domain map. It at least
      cause 2 problems.
      1. All the new join request will fail. So no new node can mount the volume.
      2. The joined node can't umount the volume since during the umount process it
         has to wait for the joining_node to be unknown. So the umount will be hanged.
      
      The solution is to clear the joining_node before we check the domain map.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      2d4b1cbb
    • M
      ocfs2: convert byte order of constant instead of variable · 4092d49f
      Marcin Slusarz 提交于
      Convert byte order of constant instead of variable it will be done at
      compile time vs run time. Remove unused le32_and_cpu.
      Signed-off-by: NMarcin Slusarz <marcin.slusarz@gmail.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      4092d49f
    • S
      ocfs2: Update default cluster timeouts · 17104683
      Sunil Mushran 提交于
      Lots of people are having trouble with the default timeouts, which are too
      low. These new values are derived from an informal survey taken on
      ocfs2-users, as well as data from bug reports. This should reduce the amount
      of cluster disconnects and subsequent fencing seen during normal workloads.
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      17104683
    • J
      ocfs2: printf fixes · 634bf74d
      Jan Kara 提交于
      Explicitely convert loff_t to long long in printf. Just for sure...
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      634bf74d
    • J
      ocfs2: Use generic_file_llseek · 32c3c0e2
      Jan Kara 提交于
      We should use generic_file_llseek() and not default_llseek() so that
      s_maxbytes gets properly checked when seeking.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      32c3c0e2
    • J
      ocfs2: Safer read_inline_data() · d2849fb2
      Jan Kara 提交于
      In ocfs2_read_inline_data() we should store file size in loff_t. Although
      the file size should fit in 32 bits we cannot be sure in case filesystem is
      corrupted.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      d2849fb2
    • J
      ocfs2: Silence false lockdep warnings · 5fa0613e
      Jan Kara 提交于
      Create separate lockdep lock classes for system file's i_mutexes. They are
      used to guard allocations and similar things and thus rank differently
      than i_mutex of a regular file or directory.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      5fa0613e
    • M
      [PATCH 2/2] ocfs2: cluster aware flock() · 53fc622b
      Mark Fasheh 提交于
      Hook up ocfs2_flock(), using the new flock lock type in dlmglue.c. A new
      mount option, "localflocks" is added so that users can revert to old
      functionality as need be.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      53fc622b
    • M
      [PATCH 1/2] ocfs2: add flock lock type · cf8e06f1
      Mark Fasheh 提交于
      This adds a new dlmglue lock type which is intended to back flock()
      requests.
      
      Since these locks are driven from userspace, usage rules are much more
      liberal than the typical Ocfs2 internal cluster lock. As a result, we can't
      make use of most dlmglue features - lock caching and lock level
      optimizations in particular. Additionally, userspace is free to deadlock
      itself, so we have to deal with that in the same way as the rest of the
      kernel - by allowing a signal to abort a lock request.
      
      In order to keep ocfs2_cluster_lock() complexity down, ocfs2_file_lock()
      does it's own dlm coordination. We still use the same helper functions
      though, so duplicated code is kept to a minimum.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      cf8e06f1
    • S
      ocfs2: Local alloc window size changeable via mount option · 2fbe8d1e
      Sunil Mushran 提交于
      Local alloc is a performance optimization in ocfs2 in which a node
      takes a window of bits from the global bitmap and then uses that for
      all small local allocations. This window size is fixed to 8MB currently.
      This patch allows users to specify the window size in MB including
      disabling it by passing in 0. If the number specified is too large,
      the fs will use the default value of 8MB.
      
      mount -o localalloc=X /dev/sdX /mntpoint
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      2fbe8d1e
    • M
      ocfs2: Support commit= mount option · d147b3d6
      Mark Fasheh 提交于
      Mostly taken from ext3. This allows the user to set the jbd commit interval,
      in seconds. The default of 5 seconds stays the same, but now users can
      easily increase the commit interval. Typically, this would be increased in
      order to benefit performance at the expense of data-safety.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      d147b3d6
    • M
      ocfs2: Add missing permission checks · 0957f007
      Mark Fasheh 提交于
      Check that an online resize is being driven by a user with permission to
      change system resource limits.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      0957f007
    • T
      [PATCH 2/2] ocfs2: Implement group add for online resize · 7909f2bf
      Tao Ma 提交于
      This patch adds the ability for a userspace program to request that a
      properly formatted cluster group be added to the main allocation bitmap for
      an Ocfs2 file system. The request is made via an ioctl, OCFS2_IOC_GROUP_ADD.
      On a high level, this is similar to ext3, but we use a different ioctl as
      the structure which has to be passed through is different.
      
      During an online resize, tunefs.ocfs2 will format any new cluster groups
      which must be added to complete the resize, and call OCFS2_IOC_GROUP_ADD on
      each one. Kernel verifies that the core cluster group information is valid
      and then does the work of linking it into the global allocation bitmap.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      7909f2bf
    • T
      [PATCH 1/2] ocfs2: Add group extend for online resize · d659072f
      Tao Ma 提交于
      This patch adds the ability for a userspace program to request an extend of
      last cluster group on an Ocfs2 file system. The request is made via ioctl,
      OCFS2_IOC_GROUP_EXTEND. This is derived from EXT3_IOC_GROUP_EXTEND, but is
      obviously Ocfs2 specific.
      
      tunefs.ocfs2 would call this for an online-resize operation if the last
      cluster group isn't full.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      d659072f
    • H
      [SCSI] usbstorage: use last_sector_bug flag universally · 23c3e290
      Hans de Goede 提交于
      This patch sets the last_sector_bug flag to 1 for all USB disks. This is
      needed to makes the cardreader on various HP multifunction printers work.
      
      Since the performance impact is negible we set this flag for all USB disks to
      avoid an unusual_devs.h nightmare.
      Signed-off-by: NHans de Goede <j.w.r.degoede@hhs.nl>
      Acked-by: NMatthew Dharm <mdharm-usb@one-eyed-alien.net>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      23c3e290
    • T
      ocfs2: Reserve ioctl range · 7f68fc28
      Tao Ma 提交于
      We need to reserve at least two ioctls for online-resize. Reserve a small
      range of ioctls for Ocfs2 use in Documentation/ioctl-number.txt. This should
      give us enough room for future growth.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      7f68fc28
    • T
      ocfs2: Initalize bitmap_cpg of ocfs2_super to be the maximum. · e9d578a8
      Tao Ma 提交于
      This value is initialized from global_bitmap->id2.i_chain.cl_cpg. If there
      is only 1 group, it will be equal to the total clusters in the volume. So
      as for online resize, it should change for all the nodes in the cluster.
      It isn't easy and there is no corresponding lock for it.
      
      bitmap_cpg is only used in 2 areas:
      1. Check whether the suballoc is too large for us to allocate from the global
         bitmap, so it is little used. And now the suballoc size is 2048, it rarely
         meet this situation and the check is almost useless.
      2. Calculate which group a cluster belongs to. We use it during truncate to
         figure out which cluster group an extent belongs too. But we should be OK
         if we increase it though as the cluster group calculated shouldn't change
         and we only ever have a small bitmap_cpg on file systems with a single
         cluster group.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      e9d578a8
    • H
      [CRYPTO] hifn795x: Disallow built-in hifn795x when HW_RANDOM is m · 946fef4e
      Herbert Xu 提交于
      Currently it is possible to select HW_RANDOM as a module and have
      hifn795x built-in.  This causes a build problem because hifn795x
      will then call hwrng_register which isn't built-in.
      
      This patch introduces a new config option to control the hifn795x
      RNG which lets us avoid this problem.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      946fef4e
    • M
      ocfs2: Documentation update · 1252c434
      Mark Fasheh 提交于
      Remove 'readpages' from the list in ocfs2.txt. Instead of having two
      identical lists, I just removed the list in the OCFS2 section of fs/Kconfig
      and added a pointer to Documentation/filesystems/ocfs2.txt.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      1252c434
    • M
      ocfs2: Readpages support · 628a24f5
      Mark Fasheh 提交于
      Add ->readpages support to Ocfs2. This is rather trivial - all it required
      is a small update to ocfs2_get_block (for mapping full extents via b_size)
      and an ocfs2_readpages() function which partially mirrors ocfs2_readpage().
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      628a24f5
    • J
      dlm: Split lock mode and flag constants into a sharable header. · d69a3ad6
      Joel Becker 提交于
      This allows others to use the DLM constants without being tied to the
      function API of fs/dlm.
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      d69a3ad6
    • M
      ocfs2: Rename ocfs2_meta_[un]lock · e63aecb6
      Mark Fasheh 提交于
      Call this the "inode_lock" now, since it covers both data and meta data.
      This patch makes no functional changes.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      e63aecb6
    • M
      ocfs2: Remove data locks · c934a92d
      Mark Fasheh 提交于
      The meta lock now covers both meta data and data, so this just removes the
      now-redundant data lock.
      
      Combining locks saves us a round of lock mastery per inode and one less lock
      to ping between nodes during read/write.
      
      We don't lose much - since meta locks were always held before a data lock
      (and at the same level) ordered writeout mode (the default) ensured that
      flushing for the meta data lock also pushed out data anyways.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      c934a92d
    • M
      ocfs2: Add data downconvert worker to inode lock · f1f54068
      Mark Fasheh 提交于
      In order to extend inode lock coverage to inode data, we use the same data
      downconvert worker with only a small modification to only do work for
      regular files.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      f1f54068
    • M
      ocfs2: Remove mount/unmount votes · 34d024f8
      Mark Fasheh 提交于
      The node maps that are set/unset by these votes are no longer relevant, thus
      we can remove the mount and umount votes. Since those are the last two
      remaining votes, we can also remove the entire vote infrastructure.
      
      The vote thread has been renamed to the downconvert thread, and the small
      amount of functionality related to managing it has been moved into
      fs/ocfs2/dlmglue.c. All references to votes have been removed or updated.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      34d024f8