Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[firefly-linux-kernel-4.4.55.git] / net / netfilter / nf_log.c
index 49a64174f3f1777bc015ee01d7692afceb5dc0da..43c926cae9c00de1306144abcddcf64f510c2864 100644 (file)
@@ -303,35 +303,37 @@ static int seq_show(struct seq_file *s, void *v)
 {
        loff_t *pos = v;
        const struct nf_logger *logger;
-       int i, ret;
+       int i;
        struct net *net = seq_file_net(s);
 
        logger = nft_log_dereference(net->nf.nf_loggers[*pos]);
 
        if (!logger)
-               ret = seq_printf(s, "%2lld NONE (", *pos);
+               seq_printf(s, "%2lld NONE (", *pos);
        else
-               ret = seq_printf(s, "%2lld %s (", *pos, logger->name);
+               seq_printf(s, "%2lld %s (", *pos, logger->name);
 
-       if (ret < 0)
-               return ret;
+       if (seq_has_overflowed(s))
+               return -ENOSPC;
 
        for (i = 0; i < NF_LOG_TYPE_MAX; i++) {
                if (loggers[*pos][i] == NULL)
                        continue;
 
                logger = nft_log_dereference(loggers[*pos][i]);
-               ret = seq_printf(s, "%s", logger->name);
-               if (ret < 0)
-                       return ret;
-               if (i == 0 && loggers[*pos][i + 1] != NULL) {
-                       ret = seq_printf(s, ",");
-                       if (ret < 0)
-                               return ret;
-               }
+               seq_printf(s, "%s", logger->name);
+               if (i == 0 && loggers[*pos][i + 1] != NULL)
+                       seq_printf(s, ",");
+
+               if (seq_has_overflowed(s))
+                       return -ENOSPC;
        }
 
-       return seq_printf(s, ")\n");
+       seq_printf(s, ")\n");
+
+       if (seq_has_overflowed(s))
+               return -ENOSPC;
+       return 0;
 }
 
 static const struct seq_operations nflog_seq_ops = {