X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fnet%2Faf_unix.h;h=47c8228a3467c278b84c7bc27add0fc362cc2d6c;hb=refs%2Fheads%2Fvserver;hp=9dd2fac7aeb77b79e61c73ec167d979e604cd551;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/include/net/af_unix.h b/include/net/af_unix.h index 9dd2fac7a..47c8228a3 100644 --- a/include/net/af_unix.h +++ b/include/net/af_unix.h @@ -1,9 +1,10 @@ #ifndef __LINUX_NET_AFUNIX_H #define __LINUX_NET_AFUNIX_H -#include #include #include +#include +#include #include extern void unix_inflight(struct file *fp); @@ -33,7 +34,7 @@ static inline struct sock *next_unix_socket(int *i, struct sock *s) s = sk_next(s); if (!s) s = next_unix_socket_table(i); - } while (s && !vx_check(s->sk_xid, VX_IDENT|VX_WATCH)); + } while (s && !nx_check(s->sk_nid, VS_WATCH_P|VS_IDENT)); return s; } @@ -56,14 +57,21 @@ struct unix_address { struct unix_skb_parms { struct ucred creds; /* Skb credentials */ struct scm_fp_list *fp; /* Passed files */ +#ifdef CONFIG_SECURITY_NETWORK + u32 secid; /* Security ID */ +#endif }; #define UNIXCB(skb) (*(struct unix_skb_parms*)&((skb)->cb)) #define UNIXCREDS(skb) (&UNIXCB((skb)).creds) +#define UNIXSID(skb) (&UNIXCB((skb)).secid) #define unix_state_rlock(s) spin_lock(&unix_sk(s)->lock) #define unix_state_runlock(s) spin_unlock(&unix_sk(s)->lock) #define unix_state_wlock(s) spin_lock(&unix_sk(s)->lock) +#define unix_state_wlock_nested(s) \ + spin_lock_nested(&unix_sk(s)->lock, \ + SINGLE_DEPTH_NESTING) #define unix_state_wunlock(s) spin_unlock(&unix_sk(s)->lock) #ifdef __KERNEL__ @@ -74,7 +82,7 @@ struct unix_sock { struct unix_address *addr; struct dentry *dentry; struct vfsmount *mnt; - struct semaphore readsem; + struct mutex readlock; struct sock *peer; struct sock *other; struct sock *gc_tree;