Merge branch 'fixes-v3.15-rc1'; commit '390403fd79821bbd0c3a0d83307df2be87047b36...
[cascardo/linux.git] / include / net / dst.h
index 77eb53f..46ed958 100644 (file)
@@ -54,10 +54,9 @@ struct dst_entry {
 #define DST_NOHASH             0x0008
 #define DST_NOCACHE            0x0010
 #define DST_NOCOUNT            0x0020
-#define DST_NOPEER             0x0040
-#define DST_FAKE_RTABLE                0x0080
-#define DST_XFRM_TUNNEL                0x0100
-#define DST_XFRM_QUEUE         0x0200
+#define DST_FAKE_RTABLE                0x0040
+#define DST_XFRM_TUNNEL                0x0080
+#define DST_XFRM_QUEUE         0x0100
 
        unsigned short          pending_confirm;
 
@@ -109,9 +108,11 @@ struct dst_entry {
 u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old);
 extern const u32 dst_default_metrics[];
 
-#define DST_METRICS_READ_ONLY  0x1UL
+#define DST_METRICS_READ_ONLY          0x1UL
+#define DST_METRICS_FORCE_OVERWRITE    0x2UL
+#define DST_METRICS_FLAGS              0x3UL
 #define __DST_METRICS_PTR(Y)   \
-       ((u32 *)((Y) & ~DST_METRICS_READ_ONLY))
+       ((u32 *)((Y) & ~DST_METRICS_FLAGS))
 #define DST_METRICS_PTR(X)     __DST_METRICS_PTR((X)->_metrics)
 
 static inline bool dst_metrics_read_only(const struct dst_entry *dst)
@@ -119,6 +120,11 @@ static inline bool dst_metrics_read_only(const struct dst_entry *dst)
        return dst->_metrics & DST_METRICS_READ_ONLY;
 }
 
+static inline void dst_metrics_set_force_overwrite(struct dst_entry *dst)
+{
+       dst->_metrics |= DST_METRICS_FORCE_OVERWRITE;
+}
+
 void __dst_destroy_metrics_generic(struct dst_entry *dst, unsigned long old);
 
 static inline void dst_destroy_metrics_generic(struct dst_entry *dst)