There is a potential for deadlock when allocating a struct sk_buff fordata that needs to be written out to aoe storage. If the data isbeing written from a dirty page in order to free that page, and ifthere are no other pages available, then deadlock may occur when afree page is needed for the sk_buff allocation. This situation hasnot been observed, but it would be nice to eliminate any potential fordeadlock under memory pressure.Because ATA over Ethernet is not fragmented by the kernel's IP code,
driver. By using a mempool for allocating all but the first fewsk_buffs, and by registering a destructor, we should be able toefficiently allocate sk_buffs without introducing any potential fordeadlock.