summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Rafał Miłecki [Mon, 12 Feb 2018 10:19:42 +0000 (11:19 +0100)]
mount: fix/improve unmounting log messages
The message in mount_dev_del() had a typo and was printing non-existing
directory:
1) mount->dev is valid for /tmp/run/mountd/
2) mount->name is valid for uci_path (e.g. /tmp/mounts/)
The old message was mixing /tmp/run/mountd/ with mount->name.
While at it change mount_remove() to match updated mount_dev_del().
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Fri, 9 Feb 2018 16:18:21 +0000 (17:18 +0100)]
mount: fix removing mount point if it's expired
Kernel can report mount point as expired and when that happens mountd
unmounts it. When such a device disappears it's still important to:
1) Cleanup directories
2) Call hotplug scripts
Fix this by adding a new EXPIRED status and checking it when block
device disappears.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Fri, 9 Feb 2018 16:18:20 +0000 (17:18 +0100)]
mount: struct mount: replace "mounted" and "ignore" fileds with a "status"
There is no need to store status using these 2 separated fields.
Obviously ignored mount should never get mounted. This change will also
allow adding more statuses easily in the future if needed.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Fri, 9 Feb 2018 15:21:49 +0000 (16:21 +0100)]
mount: change mount_dev_del() argument to struct mount *
Caller of mount_dev_del() already has struct mount * so there is no
point in passing matchin device and then looking for struct mount *
again.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Thu, 8 Feb 2018 13:50:20 +0000 (14:50 +0100)]
mount: rename /proc/mount parser to mount_update_mount_list()
Using "update" in the function name should better match its role than
"check". The main purpose of this function is to update content of the
"mounted" array.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Thu, 8 Feb 2018 13:50:19 +0000 (14:50 +0100)]
mount: improve handling mounts table size
This is static array with a size set to MAX_MOUNTED. Old code:
1) Was never using the last table entry/row
2) Was logging the same message for every mount entry above limit
This fixes off-by-one, moves limit check to the proper place and uses
"break" when needed.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Wed, 3 Jan 2018 10:31:23 +0000 (11:31 +0100)]
mount: check if block was mounted before cleaning it up
Calling an extra rmdir and unlink isn't a big issue but triggering
hotplug.d scripts for devices that weren't mounted could be misleading
for listeners.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Wed, 3 Jan 2018 10:31:22 +0000 (11:31 +0100)]
mount: remove directory if mounting fails
Aside from just cleaning up mountd's tmp dir it's also important for
autofs support. With such an empty directory autofs_process_request
believed device is mounted and it kept replying AUTOFS_IOC_READY to the
kernel. It was causing a log storm like:
mountd[1015]: Got a autofs packet
mountd[1015]: kernel is requesting a mount -> sda1
mountd[1015]: Got a autofs packet
mountd[1015]: kernel is requesting a mount -> sda1
mountd[1015]: Got a autofs packet
mountd[1015]: kernel is requesting a mount -> sda1
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Wed, 3 Jan 2018 10:31:21 +0000 (11:31 +0100)]
mount: call hotplug mount scripts only on success
If mounting fails for whatever reason (like unsupported file system or
something) hotplug.d scripts shouldn't be called.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rafał Miłecki [Fri, 3 Nov 2017 09:02:40 +0000 (10:02 +0100)]
mount: add mount with ignore=1 for unsupported filesystems
So far a check for unsupported filesystem was in the mount_add_list
which was simply stopping mount from being added to the global list.
This resulted in mount_dev_add continuously not being able to find a
mount for the given block device and trying to add it over and over.
That was non-optimal becuse with unsupported filesystem present the
code was checking all its parameters every second.
Fix this by:
1) Moving check out of the mount_add_list to keep all logic in the
caller function.
2) Adding mount with ignore=1 for unsupported filesystem instead of
ignoring it.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: John Crispin <john@phrozen.org>
Rafał Miłecki [Fri, 3 Nov 2017 09:02:39 +0000 (10:02 +0100)]
mount: drop duplicated filesystem check from mount_add_list
At the very beginning of this function there is following code:
if(fs <= MBR || fs > LASTFS)
return;
There is no point in checking for the same range again as these checks
will always evaluate into true.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: John Crispin <john@phrozen.org>
Hans Dedecker [Wed, 18 Oct 2017 08:00:15 +0000 (10:00 +0200)]
autofs: register SIGTERM for gracefull exit
Register SIGTERM to gracefully terminate mountd.
At the same time don't handle the exit in signal handler context but
let the main bail out.
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Signed-off-by: Rutger Lejeune <rutger-lejeune@hotmail.com>
Hans Dedecker [Tue, 17 Oct 2017 11:40:41 +0000 (13:40 +0200)]
mount: fix SIGSEV crashes
Don't close file descriptor in case file descriptor is NULL
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Rosen Penev [Sat, 17 Dec 2016 23:41:05 +0000 (15:41 -0800)]
mountd: Add static qualifier to missing variable declarations.
-Wmissing-variable-declarations is missing in gcc but available in clang.
Signed-off by: Rosen Penev <rosenp@gmail.com>
Rosen Penev [Sun, 18 Dec 2016 00:09:24 +0000 (16:09 -0800)]
mountd: Fix fgets check.
fgets returns NULL on failure and a pointer otherwise. While comparing
it normally does not cause problems, comparing a pointer like this
is still undefined behavior.
Signed-off by: Rosen Penev <rosenp@gmail.com>
Florian Fainelli [Wed, 28 Sep 2016 17:16:40 +0000 (10:16 -0700)]
cmake: Really look for uci.h
Commit
46063a1657c4 ("cmake: Find uci.h") introduced a check against libubus.h
but mountd actually uses uci.h, so fix that.
Fixes: 46063a1657c4 ("cmake: Find uci.h")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Kristof Roelants [Fri, 9 Sep 2016 13:46:48 +0000 (15:46 +0200)]
cleanup mountpoints of partitions failing to mount
If a partition fails to mount, its autofs mountpoint is created and the mounted
flag is unset. When the partition expires or is removed, the autofs mountpoint
is cleaned up only if the mounted flag is set. Added cleanup of the autofs
mountpoint at removal and unset mounted flag.
Signed-off-by: Kristof Roelants <Kristof.Roelants@technicolor.com>
Florian Fainelli [Mon, 11 Jul 2016 22:02:13 +0000 (15:02 -0700)]
cmake: Find uci.h
Add a CMake FIND_PATH and INCLUDE_DIRECTORIES searching for uci.h. Some
external toolchains which do not include standard locations would fail
to find the header otherwise.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
olivier.hardouin@gmail.com [Wed, 22 Jun 2016 07:51:19 +0000 (09:51 +0200)]
support for disk without partition table
if no partition found, try to mount the block device itself
Signed-off-by: Olivier Hardouin <olivier.hardouin@gmail.com>
olivier.hardouin@gmail.com [Wed, 22 Jun 2016 07:51:18 +0000 (09:51 +0200)]
hfs+ journal partition support as read only
use hfsplus driver to mount hfs+ partition marked as journalled,
read only mounting since partial support from the kernel for write
access (as stated in Documentatiom/filesystems/hfsplus.txt)
add new index 'LASTFS' to be used in case of support for another
driver
Signed-off-by: Olivier Hardouin <olivier.hardouin@gmail.com>
olivier.hardouin@gmail.com [Wed, 15 Jun 2016 14:10:24 +0000 (16:10 +0200)]
filesystem mount options in uci as optional parameter
Possibility to overwrite the default hardcoded settings by adding 'options'
and 'fstype' in the uci configuration. The fs names are changed in lowercase
to comply with UCI general naming.
Signed-off-by: Olivier Hardouin <olivier.hardouin@gmail.com>
olivier.hardouin@gmail.com [Wed, 15 Jun 2016 14:10:23 +0000 (16:10 +0200)]
add hotplug events
add hotplug events (add, remove) to inform other subsystems
remove obsolete /etc/mountd/event call
Signed-off-by: Olivier Hardouin <olivier.hardouin@gmail.com>
olivier.hardouin@gmail.com [Wed, 15 Jun 2016 14:10:22 +0000 (16:10 +0200)]
fix crash if no uci config file present
fix also possible null dereferenced pointers
Signed-off-by: Olivier Hardouin <olivier.hardouin@gmail.com>
olivier.hardouin@gmail.com [Wed, 15 Jun 2016 14:10:21 +0000 (16:10 +0200)]
align fs_names table to indexes defined in include/fs.h
Signed-off-by: Olivier Hardouin <olivier.hardouin@gmail.com>
Hauke Mehrtens [Sun, 22 Nov 2015 14:43:09 +0000 (15:43 +0100)]
fix gcc format security errors
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
John Crispin [Thu, 10 Sep 2015 15:22:34 +0000 (17:22 +0200)]
add exfat support
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 3 Aug 2015 02:14:19 +0000 (04:14 +0200)]
make mountd also work for mmc partitions
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 27 Jul 2015 12:05:13 +0000 (14:05 +0200)]
import patches/ and cmake support
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 27 Jul 2015 11:30:13 +0000 (13:30 +0200)]
import v0.1
Signed-off-by: John Crispin <blogic@openwrt.org>