(5/21/13 6:26 AM), Karel Zak wrote: > On Mon, May 20, 2013 at 09:02:43PM -0400, KOSAKI Motohiro wrote: >>> - if (fl_discard) >>> + if (fl_discard) { >>> flags |= SWAP_FLAG_DISCARD; >>> + if (fl_discard > 1) >>> + flags |= SWAP_FLAG_DISCARD_CLUSTER; >> >> This is not enough, IMHO. When running this code on old kernel, swapon() return EINVAL. >> At that time, we should fall back swapon(0x10000). > > Hmm.. currently we don't use any fallback for any swap flag (e.g. > 0x10000) for compatibility with old kernels. Maybe it's better to > keep it simple and stupid and return an error message than introduce > any super-smart semantic to hide incompatible fstab configuration. Hm. If so, I'd propose to revert the following change. > .B "\-d, \-\-discard" >-Discard freed swap pages before they are reused, if the swap >-device supports the discard or trim operation. This may improve >-performance on some Solid State Devices, but often it does not. >+Enables swap discards, if the swap device supports that, and performs >+a batch discard operation for the swap device at swapon time. And instead, I suggest to make --discard-on-swapon like the following. (better name idea is welcome) +--discard-on-swapon +Enables swap discards, if the swap device supports that, and performs +a batch discard operation for the swap device at swapon time. I mean, preserving flags semantics removes the reason we need make a fallback. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>