1There is a potential for deadlock when allocating a struct sk_buff for
   2data that needs to be written out to aoe storage.  If the data is
   3being written from a dirty page in order to free that page, and if
   4there are no other pages available, then deadlock may occur when a
   5free page is needed for the sk_buff allocation.  This situation has
   6not been observed, but it would be nice to eliminate any potential for
   7deadlock under memory pressure.
   9Because ATA over Ethernet is not fragmented by the kernel's IP code,
  10the destructor member of the struct sk_buff is available to the aoe
  11driver.  By using a mempool for allocating all but the first few
  12sk_buffs, and by registering a destructor, we should be able to
  13efficiently allocate sk_buffs without introducing any potential for
  15 kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.