Both are used for different occasions.
frags []
/ , , .., frags[] 2- n- . data tail . frags[]. , .
frag_list
IP. ip_push_pending_frames. , sk_buffs
sk_buff0->next = sk_buff1
sk_buff1->next = sk_buff2
...
sk_buffn-1->next = sk_buffn
ip_push_pending_frames
sk_buff0->frag_list = sk_buff1
sk_buff1->next = sk_buff2
...
sk_buffn-1->next = sk_buffn