X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Fliblustre.h;h=cf4179060650e34ff57067bbe14ea1fbb648e978;hp=bf34f0475ff90abf6b62dc6372a7df7760c18889;hb=a067251099b6b225f2409f680d9e4423253d0730;hpb=9496591a7f31e8766ee1124725fbab3841d8baef diff --git a/lustre/include/liblustre.h b/lustre/include/liblustre.h index bf34f04..cf41790 100644 --- a/lustre/include/liblustre.h +++ b/lustre/include/liblustre.h @@ -27,7 +27,7 @@ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2011, 2012, Whamcloud, Inc. + * Copyright (c) 2011, 2013, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -90,18 +90,18 @@ void *inter_module_get(char *arg); static __inline__ int ext2_set_bit(int nr, void *addr) { #ifdef __BIG_ENDIAN - return cfs_set_bit((nr ^ ((BITS_PER_LONG-1) & ~0x7)), addr); + return set_bit((nr ^ ((BITS_PER_LONG-1) & ~0x7)), addr); #else - return cfs_set_bit(nr, addr); + return set_bit(nr, addr); #endif } -static __inline__ int ext2_clear_bit(int nr, void *addr) +static inline int ext2_clear_bit(int nr, void *addr) { #ifdef __BIG_ENDIAN - return cfs_clear_bit((nr ^ ((BITS_PER_LONG-1) & ~0x7)), addr); + return clear_bit((nr ^ ((BITS_PER_LONG-1) & ~0x7)), addr); #else - return cfs_clear_bit(nr, addr); + return clear_bit(nr, addr); #endif } @@ -111,7 +111,7 @@ static __inline__ int ext2_test_bit(int nr, void *addr) __const__ unsigned char *tmp = (__const__ unsigned char *) addr; return (tmp[nr >> 3] >> (nr & 7)) & 1; #else - return cfs_test_bit(nr, addr); + return test_bit(nr, addr); #endif } @@ -163,8 +163,8 @@ void cfs_get_random_bytes(void *ptr, int size); /* memory */ /* memory size: used for some client tunables */ -#define cfs_num_physpages (256 * 1024) /* 1GB */ -#define CFS_NUM_CACHEPAGES cfs_num_physpages +#define num_physpages (256 * 1024) /* 1GB */ +#define NUM_CACHEPAGES num_physpages /* VFS stuff */ @@ -206,9 +206,14 @@ struct lustre_intent_data { int it_disposition; int it_status; __u64 it_lock_handle; - void *it_data; int it_lock_mode; + int it_remote_lock_mode; + __u64 it_remote_lock_handle; + void *it_data; + + unsigned int it_lock_set:1; }; + struct lookup_intent { int it_magic; void (*it_op_release)(struct lookup_intent *); @@ -266,6 +271,7 @@ typedef struct task_struct cfs_task_t; #define cfs_curproc_comm() (current->comm) #define cfs_curproc_fsuid() (current->fsuid) #define cfs_curproc_fsgid() (current->fsgid) +#define cfs_curproc_umask() ({ mode_t mask = umask(0); umask(mask); mask; }) extern struct task_struct *current; int cfs_curproc_is_in_groups(gid_t gid); @@ -365,7 +371,7 @@ struct nfs_lock_info { void *host; }; -typedef struct file_lock { +struct file_lock { struct file_lock *fl_next; /* singly linked list for this inode */ cfs_list_t fl_link; /* doubly linked list of all locks */ cfs_list_t fl_block; /* circular list of blocked processes */ @@ -388,16 +394,16 @@ typedef struct file_lock { union { struct nfs_lock_info nfs_fl; } fl_u; -} cfs_flock_t; +}; -#define cfs_flock_type(fl) ((fl)->fl_type) -#define cfs_flock_set_type(fl, type) do { (fl)->fl_type = (type); } while(0) -#define cfs_flock_pid(fl) ((fl)->fl_pid) -#define cfs_flock_set_pid(fl, pid) do { (fl)->fl_pid = (pid); } while(0) -#define cfs_flock_start(fl) ((fl)->fl_start) -#define cfs_flock_set_start(fl, start) do { (fl)->fl_start = (start); } while(0) -#define cfs_flock_end(fl) ((fl)->fl_end) -#define cfs_flock_set_end(fl, end) do { (fl)->fl_end = (end); } while(0) +#define flock_type(fl) ((fl)->fl_type) +#define flock_set_type(fl, type) do { (fl)->fl_type = (type); } while (0) +#define flock_pid(fl) ((fl)->fl_pid) +#define flock_set_pid(fl, pid) do { (fl)->fl_pid = (pid); } while (0) +#define flock_start(fl) ((fl)->fl_start) +#define flock_set_start(fl, st) do { (fl)->fl_start = (st); } while (0) +#define flock_end(fl) ((fl)->fl_end) +#define flock_set_end(fl, end) do { (fl)->fl_end = (end); } while (0) #ifndef OFFSET_MAX #define INT_LIMIT(x) (~((x)1 << (sizeof(x)*8 - 1))) @@ -452,6 +458,10 @@ struct posix_acl * posix_acl_from_xattr(const void *value, size_t size) return NULL; } +/* The kernel version takes 3 arguments, so strip that off first. */ +#define posix_acl_from_xattr(a,b,c) posix_acl_from_xattr(b,c) +#define posix_acl_to_xattr(a,b,c) posix_acl_to_xattr(b,c) + static inline int posix_acl_valid(const struct posix_acl *acl) { @@ -488,6 +498,9 @@ static inline void set_fs(mm_segment_t seg) #define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO) #define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO) +struct inode *igrab(struct inode *inode); +void iput(struct inode *inode); + #include #include #include