| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #!/bin/sh
- # Copyright (C) 2009-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
- . /lib/functions/block.sh
- . /lib/functions/fsck.sh
- blkdev=`dirname $DEVPATH`
- if [ `basename $blkdev` != "block" ]; then
- device=`basename $DEVPATH`
- case "$ACTION" in
- add)
- local from_fstab
- local anon_mount
- local anon_swap
- local anon_fsck
- local mds_mount_target
- local mds_mount_device
- local mds_mount_fstype
- local mds_mount_enabled_fsck
- local sds_swap_device
- local use_device
- local do_fsck=0
- local fsck_type
-
- local autoswap_from_fstab
- local automount_from_fstab
- local hotplug_blkid_fstype_match
- mount_dev_section_cb() {
- mds_mount_device="$3"
- mds_mount_fstype="$4"
- mds_mount_enabled_fsck="$7"
- }
- swap_dev_section_cb() {
- sds_swap_device="$2"
- return 0
- }
- config_get_automount
- automount_from_fstab="$from_fstab"
-
- [ "$automount_from_fstab" -eq 1 ] && {
- config_get_mount_section_by_device "/dev/$device"
- use_device="$mds_mount_device"
- [ "$mds_mount_enabled_fsck" -eq 1 ] && {
- do_fsck=1
- fsck_type="$mds_mount_fstype"
- }
- }
-
- [ -z "$use_device" ] && {
- config_get_autoswap
- autoswap_from_fstab="$from_fstab"
-
- [ "$autoswap_from_fstab" -eq 1 ] && {
- config_get_swap_section_by_device "/dev/$device"
- use_device="$sds_swap_device" && do_fsck=0
- }
- }
-
- grep -q "/dev/$device" /proc/swaps || grep -q "/dev/$device" /proc/mounts || {
- [ "$anon_fsck" -eq 1 ] && [ -z "$use_device" ] && {
- use_device="/dev/$device" && do_fsck=1 && mds_mount_fstype="" && hotplug_blkid_fstype_match=0
- }
- }
-
- [ "$do_fsck" -eq 1 ] && {
- libmount_fsck "$use_device" "$fsck_type" "$do_fsck"
- }
-
- reset_dev_section_cb
- ;;
- esac
- fi
|