lkml.org 
[lkml]   [2016]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 35/41] staging: lustre: hsm: Use file lease to implement migration
    On Sun, Oct 02, 2016 at 10:28:31PM -0400, James Simmons wrote:
    > From: Henri Doreau <henri.doreau@cea.fr>
    >
    > Implement non-blocking migration based on exclusive open instead of
    > group lock. Implemented exclusive close operation to atomically put
    > a lease, swap two layouts and close a file. This allows race-free
    > migrations.
    >
    > Make the caller responsible for retrying on failure (EBUSY, EAGAIN)
    > in non-blocking mode.
    >
    > In blocking mode, allow applications to trigger layout swaps using a
    > grouplock they already own, to prevent race conditions between the
    > actual data copy and the layout swap. Updated lfs accordingly. File
    > leases are also taken in blocking mode, so that lfs migrate can issue
    > a warning if an application attempts to open a file that is being
    > migrated and gets blocked.
    >
    > Timestamps (atime/mtime) are set from userland, after the layout swap
    > is performed, to prevent conflicts with the grouplock.
    >
    > lli_trunc_sem is taken/released in the vvp_io layer, under the DLM
    > lock. This re-ordering fixes the original issue between truncate and
    > migrate.
    >
    > Signed-off-by: Henri Doreau <henri.doreau@cea.fr>
    > Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
    > Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4840
    > Reviewed-on: http://review.whamcloud.com/10013
    > Reviewed-by: John L. Hammond <john.hammond@intel.com>
    > Reviewed-by: frank zago <fzago@cray.com>
    > Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
    > Signed-off-by: James Simmons <jsimmons@infradead.org>
    > ---
    > .../lustre/lustre/include/lustre/lustre_idl.h | 5 +-
    > .../lustre/lustre/include/lustre/lustre_user.h | 1 +
    > .../lustre/lustre/include/lustre_req_layout.h | 2 +-
    > drivers/staging/lustre/lustre/llite/file.c | 231 ++++++++++++--------
    > drivers/staging/lustre/lustre/llite/llite_lib.c | 4 -
    > drivers/staging/lustre/lustre/llite/vvp_io.c | 82 +++++---
    > drivers/staging/lustre/lustre/mdc/mdc_lib.c | 34 ++--
    > drivers/staging/lustre/lustre/mdc/mdc_request.c | 7 +-
    > drivers/staging/lustre/lustre/ptlrpc/layout.c | 10 +-
    > 9 files changed, 235 insertions(+), 141 deletions(-)

    This patch also failed to apply :(

    \
     
     \ /
      Last update: 2016-10-09 16:18    [W:4.777 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site