diff options
Diffstat (limited to 'testing/hdparm/wiper.sh.2_6.max-ranges.patch')
-rw-r--r-- | testing/hdparm/wiper.sh.2_6.max-ranges.patch | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/testing/hdparm/wiper.sh.2_6.max-ranges.patch b/testing/hdparm/wiper.sh.2_6.max-ranges.patch deleted file mode 100644 index c55f7b149..000000000 --- a/testing/hdparm/wiper.sh.2_6.max-ranges.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- hdparm-9.28/wiper/wiper.sh.orig 2010-03-09 06:17:37.000000000 -0800 ---- hdparm-9.28/wiper/wiper.sh 2010-05-15 03:08:02.182856971 -0700 -@@ -29,7 +29,7 @@ - function usage_error(){ - echo >&2 - echo "Linux tune-up (TRIM) utility for SATA SSDs" -- echo "Usage: $0 [--verbose] [--commit] <mount_point|block_device>" >&2 -+ echo "Usage: $0 [--max-ranges <num>] [--verbose] [--commit] <mount_point|block_device>" >&2 - echo " Eg: $0 /dev/sda1" >&2 - echo >&2 - exit 1 -@@ -44,6 +44,7 @@ - - export verbose=0 - commit="" -+max_ranges=-1 - destroy_me="" - argc=$# - arg="" -@@ -51,6 +52,10 @@ - commit=yes - elif [ "$1" = "--verbose" ]; then - verbose=$((verbose + 1)) -+ elif [ "$1" = "--max-ranges" -a $argc -gt 1 ]; then -+ max_ranges=$2 -+ argc=$((argc - 1)) -+ shift - elif [ "$1" = "" ]; then - usage_error - else -@@ -499,6 +550,18 @@ - fi - fi - -+## Different SSD's have a different maximum number of ranges they'll accept -+## in a single TRIM command. -+if [ $max_ranges -le 0 ] ; then -+ model=`$HDPARM -I $rawdev | $GAWK '/Model Number/ { print $NF }'` -+ case "$model" in -+ SSDSA[12]*) max_ranges=512 ;; # Intel X18-M/X25-M -+ OCZ-VERTEX2) max_ranges=64 ;; # OCZ Vertex2 -+ *) max_ranges=65535 -+ esac -+fi -+[ $verbose -gt 0 ] && echo "max-ranges = $max_ranges" -+ - ## All ready. Now let the user know exactly what we intend to do: - ## - mountstatus="$fstype non-mounted" -@@ -608,7 +671,7 @@ - nsectors += count; - while (count > 0) { - this_count = (count > 65535) ? 65535 : count -- printf "%u:%u ", lba, this_count -+ printf "%u:%u \n", lba, this_count - if (verbose > 1) - printf "%u:%u ", lba, this_count > "/dev/stderr" - lba += this_count -@@ -695,6 +758,22 @@ - -v verbose="$verbose" \ - -v xfs_blksects="$xfs_blksects" \ - -v xfs_agoffsets="$xfs_agoffsets" \ -- "$GAWKPROG" | $TRIM -+ "$GAWKPROG" | ( -+ i=0 -+ while read range ; do -+ ranges=$ranges" "$range -+ ((i++)) -+ if [ $i -ge $max_ranges ] ; then -+ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n" -+ echo $ranges | $TRIM -+ ranges="" -+ i=0 -+ fi -+ done -+ if [ $i -gt 0 ] ; then -+ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n" -+ echo $ranges | $TRIM -+ fi -+ ) - - do_cleanup $? - - |