+ if (fqs->fqs_large_flow == fq) {
+ /*
+ * Drop from the head of the current fq. Since a
+ * new packet will be added to the tail, it is ok
+ * to leave fq in place.
+ */
+ fq_head_drop(fqs, fq);
+ } else {
+ if (fqs->fqs_large_flow == NULL) {
+ droptype = DTYPE_FORCED;
+ fq_cl->fcl_stat.fcl_drop_overflow++;
+
+ /*
+ * if this fq was freshly created and there
+ * is nothing to enqueue, free it
+ */
+ if (fq_empty(fq) && !(fq->fq_flags &
+ (FQF_NEW_FLOW | FQF_OLD_FLOW))) {
+ fq_if_destroy_flow(fqs, fq_cl, fq);
+ fq = NULL;
+ }
+ } else {
+ fq_if_drop_packet(fqs);
+ }
+ }