nfsd: track last inode only in use_wgather case
[safe/jmp/linux-2.6] / include / net / pkt_cls.h
index 4129df7..d1ca314 100644 (file)
@@ -65,8 +65,6 @@ struct tcf_exts
 {
 #ifdef CONFIG_NET_CLS_ACT
        struct tc_action *action;
-#elif defined CONFIG_NET_CLS_POLICE
-       struct tcf_police *police;
 #endif
 };
 
@@ -91,8 +89,6 @@ tcf_exts_is_predicative(struct tcf_exts *exts)
 {
 #ifdef CONFIG_NET_CLS_ACT
        return !!exts->action;
-#elif defined CONFIG_NET_CLS_POLICE
-       return !!exts->police;
 #else
        return 0;
 #endif
@@ -129,24 +125,20 @@ tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
 #ifdef CONFIG_NET_CLS_ACT
        if (exts->action)
                return tcf_action_exec(skb, exts->action, res);
-#elif defined CONFIG_NET_CLS_POLICE
-       if (exts->police)
-               return tcf_police(skb, exts->police);
 #endif
-
        return 0;
 }
 
-extern int tcf_exts_validate(struct tcf_proto *tp, struct rtattr **tb,
-                            struct rtattr *rate_tlv, struct tcf_exts *exts,
-                            struct tcf_ext_map *map);
+extern int tcf_exts_validate(struct tcf_proto *tp, struct nlattr **tb,
+                            struct nlattr *rate_tlv, struct tcf_exts *exts,
+                            const struct tcf_ext_map *map);
 extern void tcf_exts_destroy(struct tcf_proto *tp, struct tcf_exts *exts);
 extern void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst,
                             struct tcf_exts *src);
 extern int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts,
-                        struct tcf_ext_map *map);
+                        const struct tcf_ext_map *map);
 extern int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts,
-                              struct tcf_ext_map *map);
+                              const struct tcf_ext_map *map);
 
 /**
  * struct tcf_pkt_info - packet information
@@ -254,8 +246,8 @@ struct tcf_ematch_ops
 };
 
 extern int tcf_em_register(struct tcf_ematch_ops *);
-extern int tcf_em_unregister(struct tcf_ematch_ops *);
-extern int tcf_em_tree_validate(struct tcf_proto *, struct rtattr *,
+extern void tcf_em_unregister(struct tcf_ematch_ops *);
+extern int tcf_em_tree_validate(struct tcf_proto *, struct nlattr *,
                                struct tcf_ematch_tree *);
 extern void tcf_em_tree_destroy(struct tcf_proto *, struct tcf_ematch_tree *);
 extern int tcf_em_tree_dump(struct sk_buff *, struct tcf_ematch_tree *, int);
@@ -306,6 +298,8 @@ static inline int tcf_em_tree_match(struct sk_buff *skb,
                return 1;
 }
 
+#define MODULE_ALIAS_TCF_EMATCH(kind)  MODULE_ALIAS("ematch-kind-" __stringify(kind))
+
 #else /* CONFIG_NET_EMATCH */
 
 struct tcf_ematch_tree
@@ -341,10 +335,12 @@ static inline int tcf_valid_offset(const struct sk_buff *skb,
 }
 
 #ifdef CONFIG_NET_CLS_IND
+#include <net/net_namespace.h>
+
 static inline int
-tcf_change_indev(struct tcf_proto *tp, char *indev, struct rtattr *indev_tlv)
+tcf_change_indev(struct tcf_proto *tp, char *indev, struct nlattr *indev_tlv)
 {
-       if (rtattr_strlcpy(indev, indev_tlv, IFNAMSIZ) >= IFNAMSIZ)
+       if (nla_strlcpy(indev, indev_tlv, IFNAMSIZ) >= IFNAMSIZ)
                return -EINVAL;
        return 0;
 }
@@ -357,7 +353,7 @@ tcf_match_indev(struct sk_buff *skb, char *indev)
        if (indev[0]) {
                if  (!skb->iif)
                        return 0;
-               dev = __dev_get_by_index(skb->iif);
+               dev = __dev_get_by_index(dev_net(skb->dev), skb->iif);
                if (!dev || strcmp(indev, dev->name))
                        return 0;
        }