86 lines
3.7 KiB
Text
86 lines
3.7 KiB
Text
$NetBSD: patch-ad,v 1.4 2008/07/01 13:41:08 obache Exp $
|
|
|
|
--- exo/exo-mount-point.c.orig 2007-12-02 14:33:44 +0200
|
|
+++ exo/exo-mount-point.c 2008-06-06 15:14:00 +0300
|
|
@@ -253,57 +253,57 @@ exo_mount_point_list_match_active (ExoMo
|
|
|
|
/* close the file handle */
|
|
fclose (fp);
|
|
-#elif defined(HAVE_GETFSSTAT) /* FreeBSD, OpenBSD, DragonFly, older NetBSD */
|
|
- struct statfs *mntbuf = NULL;
|
|
- glong bufsize = 0;
|
|
- gint mntsize;
|
|
- gint n;
|
|
+#elif defined(HAVE_GETVFSSTAT) && !defined(__DragonFly__) /* Newer NetBSD */
|
|
+ struct statvfs *mntbuf = NULL;
|
|
+ glong bufsize = 0;
|
|
+ gint mntsize;
|
|
+ gint n;
|
|
|
|
/* determine the number of active mount points */
|
|
- mntsize = getfsstat (NULL, 0, MNT_NOWAIT);
|
|
+ mntsize = getvfsstat (NULL, 0, MNT_NOWAIT);
|
|
if (G_LIKELY (mntsize > 0))
|
|
{
|
|
/* allocate a new buffer */
|
|
bufsize = (mntsize + 4) * sizeof (*mntbuf);
|
|
- mntbuf = (struct statfs *) malloc (bufsize);
|
|
+ mntbuf = (struct statvfs *) malloc (bufsize);
|
|
|
|
/* determine the mount point for the device file */
|
|
- mntsize = getfsstat (mntbuf, bufsize, MNT_NOWAIT);
|
|
+ mntsize = getvfsstat (mntbuf, bufsize, ST_NOWAIT);
|
|
for (n = 0; n < mntsize; ++n)
|
|
{
|
|
/* check if we have a match here */
|
|
- exo_mount_point_add_if_matches (mask, device, folder, fstype, mntbuf[n].f_mntfromname, mntbuf[n].f_mntonname,
|
|
- mntbuf[n].f_fstypename, ((mntbuf[n].f_flags & MNT_RDONLY) != 0), &mount_points);
|
|
+ exo_mount_point_add_if_matches (mask, device, folder, fstype,
|
|
+ mntbuf[n].f_mntfromname,
|
|
+ mntbuf[n].f_mntonname,
|
|
+ mntbuf[n].f_fstypename,
|
|
+ ((mntbuf[n].f_flag & MNT_RDONLY) != 0),
|
|
+ &mount_points);
|
|
}
|
|
|
|
/* release the buffer */
|
|
free (mntbuf);
|
|
}
|
|
-#elif defined(HAVE_GETVFSSTAT) /* Newer NetBSD */
|
|
- struct statvfs *mntbuf = NULL;
|
|
- glong bufsize = 0;
|
|
- gint mntsize;
|
|
- gint n;
|
|
+#elif defined(HAVE_GETFSSTAT) /* FreeBSD, OpenBSD, DragonFly, older NetBSD */
|
|
+ struct statfs *mntbuf = NULL;
|
|
+ glong bufsize = 0;
|
|
+ gint mntsize;
|
|
+ gint n;
|
|
|
|
/* determine the number of active mount points */
|
|
- mntsize = getvfsstat (NULL, 0, MNT_NOWAIT);
|
|
+ mntsize = getfsstat (NULL, 0, MNT_NOWAIT);
|
|
if (G_LIKELY (mntsize > 0))
|
|
{
|
|
/* allocate a new buffer */
|
|
bufsize = (mntsize + 4) * sizeof (*mntbuf);
|
|
- mntbuf = (struct statvfs *) malloc (bufsize);
|
|
+ mntbuf = (struct statfs *) malloc (bufsize);
|
|
|
|
/* determine the mount point for the device file */
|
|
- mntsize = getvfsstat (mntbuf, bufsize, ST_NOWAIT);
|
|
+ mntsize = getfsstat (mntbuf, bufsize, MNT_NOWAIT);
|
|
for (n = 0; n < mntsize; ++n)
|
|
{
|
|
/* check if we have a match here */
|
|
- exo_mount_point_add_if_matches (mask, device, folder, fstype,
|
|
- mntbuf[n].f_mntfromname,
|
|
- mntbuf[n].f_mntonname,
|
|
- mntbuf[n].f_fstypename,
|
|
- ((mntbuf[n].f_flag & MNT_RDONLY) != 0),
|
|
- &mount_points);
|
|
+ exo_mount_point_add_if_matches (mask, device, folder, fstype, mntbuf[n].f_mntfromname, mntbuf[n].f_mntonname,
|
|
+ mntbuf[n].f_fstypename, ((mntbuf[n].f_flags & MNT_RDONLY) != 0), &mount_points);
|
|
}
|
|
|
|
/* release the buffer */
|