• M
    9p: Implement TLOCK · a099027c
    M. Mohan Kumar 提交于
    Synopsis
    
        size[4] TLock tag[2] fid[4] flock[n]
        size[4] RLock tag[2] status[1]
    
    Description
    
    Tlock is used to acquire/release byte range posix locks on a file
    identified by given fid. The reply contains status of the lock request
    
        flock structure:
            type[1] - Type of lock: F_RDLCK, F_WRLCK, F_UNLCK
            flags[4] - Flags could be either of
              P9_LOCK_FLAGS_BLOCK - Blocked lock request, if there is a
                conflicting lock exists, wait for that lock to be released.
              P9_LOCK_FLAGS_RECLAIM - Reclaim lock request, used when client is
                trying to reclaim a lock after a server restrart (due to crash)
            start[8] - Starting offset for lock
            length[8] - Number of bytes to lock
              If length is 0, lock all bytes starting at the location 'start'
              through to the end of file
            pid[4] - PID of the process that wants to take lock
            client_id[4] - Unique client id
    
            status[1] - Status of the lock request, can be
              P9_LOCK_SUCCESS(0), P9_LOCK_BLOCKED(1), P9_LOCK_ERROR(2) or
              P9_LOCK_GRACE(3)
              P9_LOCK_SUCCESS - Request was successful
              P9_LOCK_BLOCKED - A conflicting lock is held by another process
              P9_LOCK_ERROR - Error while processing the lock request
              P9_LOCK_GRACE - Server is in grace period, it can't accept new lock
                requests in this period (except locks with
                P9_LOCK_FLAGS_RECLAIM flag set)
    Signed-off-by: NM. Mohan Kumar <mohan@in.ibm.com>
    Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: NVenkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
    Signed-off-by: NEric Van Hensbergen <ericvh@gmail.com>
    a099027c
client.c 41.1 KB