lkml.org 
[lkml]   [2007]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 08/18] vmur: add "top of queue" sanity check for reader open
    From: Michael Holzheu <holzheu@de.ibm.com>

    If the z/VM reader is already open, it can happen that after opening the
    Linux reader device, not the topmost file is processed. According the
    semantics of the Linux z/VM unit record device driver, always the topmost
    file has to be processed. With this fix an error is returned if that is
    not the case.

    Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    ---

    drivers/s390/char/vmur.c | 7 ++++++-
    drivers/s390/char/vmur.h | 1 +
    2 files changed, 7 insertions(+), 1 deletion(-)

    Index: quilt-2.6/drivers/s390/char/vmur.c
    ===================================================================
    --- quilt-2.6.orig/drivers/s390/char/vmur.c
    +++ quilt-2.6/drivers/s390/char/vmur.c
    @@ -565,9 +565,14 @@ static int verify_device(struct urdev *u
    return -ENOMEM;
    rc = diag_read_file(urd->dev_id.devno, buf);
    kfree(buf);
    -
    if ((rc != 0) && (rc != -ENODATA)) /* EOF does not hurt */
    return rc;
    + /* check if the file on top of the queue is open now */
    + rc = diag_read_next_file_info(&fcb, 0);
    + if (rc)
    + return rc;
    + if (!(fcb.file_stat & FLG_IN_USE))
    + return -EMFILE;
    return 0;
    default:
    return -ENOTSUPP;
    Index: quilt-2.6/drivers/s390/char/vmur.h
    ===================================================================
    --- quilt-2.6.orig/drivers/s390/char/vmur.h
    +++ quilt-2.6/drivers/s390/char/vmur.h
    @@ -53,6 +53,7 @@ struct file_control_block {
    #define FLG_SYSTEM_HOLD 0x04
    #define FLG_CP_DUMP 0x10
    #define FLG_USER_HOLD 0x20
    +#define FLG_IN_USE 0x80

    /*
    * A struct urdev is created for each ur device that is made available
    --
    blue skies,
    Martin.

    "Reality continues to ruin my life." - Calvin.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-07 13:23    [W:0.024 / U:91.052 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site