!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g. PHP/5.2.4-2ubuntu5.12 

uname -a: Linux forum.circlefusion.com 2.6.24-19-server #1 SMP Wed Jun 18 15:18:00 UTC 2008 i686 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/src/linux-headers-2.6.24-28/include/linux/lockd/   drwxr-xr-x
Free 1.06 GB of 97.11 GB (1.09%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     lockd.h (7.77 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * linux/include/linux/lockd/lockd.h
 *
 * General-purpose lockd include file.
 *
 * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
 */

#ifndef LINUX_LOCKD_LOCKD_H
#define LINUX_LOCKD_LOCKD_H

#ifdef __KERNEL__

#include <linux/in.h>
#include <linux/fs.h>
#include <linux/kref.h>
#include <linux/utsname.h>
#include <linux/nfsd/nfsfh.h>
#include <linux/lockd/bind.h>
#include <linux/lockd/xdr.h>
#ifdef CONFIG_LOCKD_V4
#include <linux/lockd/xdr4.h>
#endif
#include <linux/lockd/debug.h>

/*
 * Version string
 */
#define LOCKD_VERSION        "0.5"

/*
 * Default timeout for RPC calls (seconds)
 */
#define LOCKD_DFLT_TIMEO    10

/*
 * Lockd host handle (used both by the client and server personality).
 */
struct nlm_host {
    struct hlist_node    h_hash;        /* doubly linked list */
    struct sockaddr_in    h_addr;        /* peer address */
    struct sockaddr_in    h_saddr;    /* our address (optional) */
    struct rpc_clnt    *    h_rpcclnt;    /* RPC client to talk to peer */
    char *            h_name;        /* remote hostname */
    u32            h_version;    /* interface version */
    unsigned short        h_proto;    /* transport proto */
    unsigned short        h_reclaiming : 1,
                h_server     : 1, /* server side, not client side */
                h_inuse      : 1;
    wait_queue_head_t    h_gracewait;    /* wait while reclaiming */
    struct rw_semaphore    h_rwsem;    /* Reboot recovery lock */
    u32            h_state;    /* pseudo-state counter */
    u32            h_nsmstate;    /* true remote NSM state */
    u32            h_pidcount;    /* Pseudopids */
    atomic_t        h_count;    /* reference count */
    struct mutex        h_mutex;    /* mutex for pmap binding */
    unsigned long        h_nextrebind;    /* next portmap call */
    unsigned long        h_expires;    /* eligible for GC */
    struct list_head    h_lockowners;    /* Lockowners for the client */
    spinlock_t        h_lock;
    struct list_head    h_granted;    /* Locks in GRANTED state */
    struct list_head    h_reclaim;    /* Locks in RECLAIM state */
    struct nsm_handle *    h_nsmhandle;    /* NSM status handle */
};

struct nsm_handle {
    struct list_head    sm_link;
    atomic_t        sm_count;
    char *            sm_name;
    struct sockaddr_in    sm_addr;
    unsigned int        sm_monitored : 1,
                sm_sticky : 1;    /* don't unmonitor */
};

/*
 * Map an fl_owner_t into a unique 32-bit "pid"
 */
struct nlm_lockowner {
    struct list_head list;
    atomic_t count;

    struct nlm_host *host;
    fl_owner_t owner;
    uint32_t pid;
};

struct nlm_wait;

/*
 * Memory chunk for NLM client RPC request.
 */
#define NLMCLNT_OHSIZE        ((__NEW_UTS_LEN) + 10u)
struct nlm_rqst {
    unsigned int        a_flags;    /* initial RPC task flags */
    struct nlm_host *    a_host;        /* host handle */
    struct nlm_args        a_args;        /* arguments */
    struct nlm_res        a_res;        /* result */
    struct nlm_block *    a_block;
    unsigned int        a_retries;    /* Retry count */
    u8            a_owner[NLMCLNT_OHSIZE];
};

/*
 * This struct describes a file held open by lockd on behalf of
 * an NFS client.
 */
struct nlm_file {
    struct hlist_node    f_list;        /* linked list */
    struct nfs_fh        f_handle;    /* NFS file handle */
    struct file *        f_file;        /* VFS file pointer */
    struct nlm_share *    f_shares;    /* DOS shares */
    struct list_head    f_blocks;    /* blocked locks */
    unsigned int        f_locks;    /* guesstimate # of locks */
    unsigned int        f_count;    /* reference count */
    struct mutex        f_mutex;    /* avoid concurrent access */
};

/*
 * This is a server block (i.e. a lock requested by some client which
 * couldn't be granted because of a conflicting lock).
 */
#define NLM_NEVER        (~(unsigned long) 0)
/* timeout on non-blocking call: */
#define NLM_TIMEOUT        (7 * HZ)

struct nlm_block {
    struct kref        b_count;    /* Reference count */
    struct list_head    b_list;        /* linked list of all blocks */
    struct list_head    b_flist;    /* linked list (per file) */
    struct nlm_rqst    *    b_call;        /* RPC args & callback info */
    struct svc_serv *    b_daemon;    /* NLM service */
    struct nlm_host *    b_host;        /* host handle for RPC clnt */
    unsigned long        b_when;        /* next re-xmit */
    unsigned int        b_id;        /* block id */
    unsigned char        b_granted;    /* VFS granted lock */
    struct nlm_file *    b_file;        /* file in question */
    struct cache_req *    b_cache_req;    /* deferred request handling */
    struct file_lock *    b_fl;        /* set for GETLK */
    struct cache_deferred_req * b_deferred_req;
    unsigned int        b_flags;    /* block flags */
#define B_QUEUED        1    /* lock queued */
#define B_GOT_CALLBACK        2    /* got lock or conflicting lock */
#define B_TIMED_OUT        4    /* filesystem too slow to respond */
};

/*
 * Global variables
 */
extern struct rpc_program    nlm_program;
extern struct svc_procedure    nlmsvc_procedures[];
#ifdef CONFIG_LOCKD_V4
extern struct svc_procedure    nlmsvc_procedures4[];
#endif
extern int            nlmsvc_grace_period;
extern unsigned long        nlmsvc_timeout;
extern int            nsm_use_hostnames;

/*
 * Lockd client functions
 */
struct nlm_rqst * nlm_alloc_call(struct nlm_host *host);
void          nlm_release_call(struct nlm_rqst *);
int          nlm_async_call(struct nlm_rqst *, u32, const struct rpc_call_ops *);
int          nlm_async_reply(struct nlm_rqst *, u32, const struct rpc_call_ops *);
struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl);
void          nlmclnt_finish_block(struct nlm_wait *block);
int          nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout);
__be32          nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *);
void          nlmclnt_recovery(struct nlm_host *);
int          nlmclnt_reclaim(struct nlm_host *, struct file_lock *);
void          nlmclnt_next_cookie(struct nlm_cookie *);

/*
 * Host cache
 */
struct nlm_host * nlmclnt_lookup_host(const struct sockaddr_in *, int, int, const char *, int);
struct nlm_host * nlmsvc_lookup_host(struct svc_rqst *, const char *, int);
struct rpc_clnt * nlm_bind_host(struct nlm_host *);
void          nlm_rebind_host(struct nlm_host *);
struct nlm_host * nlm_get_host(struct nlm_host *);
void          nlm_release_host(struct nlm_host *);
void          nlm_shutdown_hosts(void);
extern void      nlm_host_rebooted(const struct sockaddr_in *, const char *, int, u32);
void          nsm_release(struct nsm_handle *);


/*
 * This is used in garbage collection and resource reclaim
 * A return value != 0 means destroy the lock/block/share
 */
typedef int      (*nlm_host_match_fn_t)(struct nlm_host *cur, struct nlm_host *ref);

/*
 * Server-side lock handling
 */
__be32          nlmsvc_lock(struct svc_rqst *, struct nlm_file *,
                    struct nlm_lock *, int, struct nlm_cookie *);
__be32          nlmsvc_unlock(struct nlm_file *, struct nlm_lock *);
__be32          nlmsvc_testlock(struct svc_rqst *, struct nlm_file *,
            struct nlm_lock *, struct nlm_lock *, struct nlm_cookie *);
__be32          nlmsvc_cancel_blocked(struct nlm_file *, struct nlm_lock *);
unsigned long      nlmsvc_retry_blocked(void);
void          nlmsvc_traverse_blocks(struct nlm_host *, struct nlm_file *,
                    nlm_host_match_fn_t match);
void          nlmsvc_grant_reply(struct nlm_cookie *, __be32);

/*
 * File handling for the server personality
 */
__be32          nlm_lookup_file(struct svc_rqst *, struct nlm_file **,
                    struct nfs_fh *);
void          nlm_release_file(struct nlm_file *);
void          nlmsvc_mark_resources(void);
void          nlmsvc_free_host_resources(struct nlm_host *);
void          nlmsvc_invalidate_all(void);

static __inline__ struct inode *
nlmsvc_file_inode(struct nlm_file *file)
{
    return file->f_file->f_path.dentry->d_inode;
}

/*
 * Compare two host addresses (needs modifying for ipv6)
 */
static __inline__ int
nlm_cmp_addr(const struct sockaddr_in *sin1, const struct sockaddr_in *sin2)
{
    return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr;
}

/*
 * Compare two NLM locks.
 * When the second lock is of type F_UNLCK, this acts like a wildcard.
 */
static __inline__ int
nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2)
{
    return    fl1->fl_pid   == fl2->fl_pid
         && fl1->fl_owner == fl2->fl_owner
         && fl1->fl_start == fl2->fl_start
         && fl1->fl_end   == fl2->fl_end
         &&(fl1->fl_type  == fl2->fl_type || fl2->fl_type == F_UNLCK);
}

extern struct lock_manager_operations nlmsvc_lock_operations;

#endif /* __KERNEL__ */

#endif /* LINUX_LOCKD_LOCKD_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0048 ]--