u64                             timeout;
        bool                            update;
        bool                            bound;
+       u32                             size;
 };
 
 #define nft_trans_set(trans)   \
        (((struct nft_trans_set *)trans->data)->timeout)
 #define nft_trans_set_gc_int(trans)    \
        (((struct nft_trans_set *)trans->data)->gc_int)
+#define nft_trans_set_size(trans)      \
+       (((struct nft_trans_set *)trans->data)->size)
 
 struct nft_trans_chain {
        bool                            update;
 
                nft_trans_set_update(trans) = true;
                nft_trans_set_gc_int(trans) = desc->gc_int;
                nft_trans_set_timeout(trans) = desc->timeout;
+               nft_trans_set_size(trans) = desc->size;
        }
        nft_trans_commit_list_add_tail(ctx->net, trans);
 
 
                                WRITE_ONCE(set->timeout, nft_trans_set_timeout(trans));
                                WRITE_ONCE(set->gc_int, nft_trans_set_gc_int(trans));
+
+                               if (nft_trans_set_size(trans))
+                                       WRITE_ONCE(set->size, nft_trans_set_size(trans));
                        } else {
                                nft_clear(net, nft_trans_set(trans));
                                /* This avoids hitting -EBUSY when deleting the table