Mercurial > dovecot > core-2.2
annotate src/lib/mountpoint.c @ 5583:790dec1815e0 HEAD
Compile fix for Tru64.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 09 May 2007 11:58:53 +0300 |
parents | 22e40b2c1c60 |
children | 3887591e7a54 |
rev | line source |
---|---|
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
1 /* Copyright (c) 2006 Timo Sirainen */ |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "lib.h" |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "mountpoint.h" |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 #include <sys/stat.h> |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
7 |
4736
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
8 #ifdef HAVE_STATVFS_MNTFROMNAME |
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
9 # include <sys/statvfs.h> /* NetBSD 3.0+, FreeBSD 5.0+ */ |
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
10 # define STATVFS_STR "statvfs" |
4753 | 11 #elif defined(HAVE_STATFS_MNTFROMNAME) |
4736
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
12 # include <sys/param.h> /* Older BSDs */ |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 # include <sys/mount.h> |
4736
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
14 # define statvfs statfs |
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
15 # define STATVFS_STR "statfs" |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 #elif defined(HAVE_MNTENT_H) |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
17 # include <stdio.h> |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 # include <mntent.h> /* Linux */ |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 #elif defined(HAVE_SYS_MNTTAB_H) |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 # include <stdio.h> |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 # include <sys/mnttab.h> /* Solaris */ |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 #else |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
23 # define MOUNTPOINT_UNKNOWN |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 #endif |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 |
4194
de4609242c8a
mtab path is /etc/mnttab with Solaris
Timo Sirainen <tss@iki.fi>
parents:
4189
diff
changeset
|
26 #ifdef HAVE_SYS_MNTTAB_H |
4270
455b8162e0a9
Minor cleanup: Switch hardcoded /etc/mnttab in Solaris to use MNTTAB macro
Timo Sirainen <tss@iki.fi>
parents:
4195
diff
changeset
|
27 # define MTAB_PATH MNTTAB /* Solaris */ |
4194
de4609242c8a
mtab path is /etc/mnttab with Solaris
Timo Sirainen <tss@iki.fi>
parents:
4189
diff
changeset
|
28 #else |
de4609242c8a
mtab path is /etc/mnttab with Solaris
Timo Sirainen <tss@iki.fi>
parents:
4189
diff
changeset
|
29 # define MTAB_PATH "/etc/mtab" /* Linux */ |
de4609242c8a
mtab path is /etc/mnttab with Solaris
Timo Sirainen <tss@iki.fi>
parents:
4189
diff
changeset
|
30 #endif |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 /* AIX doesn't have these defined */ |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 #ifndef MNTTYPE_SWAP |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 # define MNTTYPE_SWAP "swap" |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 #endif |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 #ifndef MNTTYPE_IGNORE |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 # define MNTTYPE_IGNORE "ignore" |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 #endif |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
39 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
40 int mountpoint_get(const char *path, pool_t pool, struct mountpoint *point_r) |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
41 { |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 #ifdef MOUNTPOINT_UNKNOWN |
4195
a00c5d4915f3
Clear mountpoint struct even in error cases.
Timo Sirainen <tss@iki.fi>
parents:
4194
diff
changeset
|
43 memset(point_r, 0, sizeof(*point_r)); |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 errno = ENOSYS; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 return -1; |
4736
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
46 #elif defined (HAVE_STATFS_MNTFROMNAME) || defined(HAVE_STATVFS_MNTFROMNAME) |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
47 /* BSDs */ |
4736
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
48 struct statvfs buf; |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
49 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
50 memset(point_r, 0, sizeof(*point_r)); |
4736
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
51 if (statvfs(path, &buf) < 0) { |
4648
93a6d2194c5d
Handle ENOENT silently and return 0.
Timo Sirainen <tss@iki.fi>
parents:
4469
diff
changeset
|
52 if (errno == ENOENT) |
93a6d2194c5d
Handle ENOENT silently and return 0.
Timo Sirainen <tss@iki.fi>
parents:
4469
diff
changeset
|
53 return 0; |
93a6d2194c5d
Handle ENOENT silently and return 0.
Timo Sirainen <tss@iki.fi>
parents:
4469
diff
changeset
|
54 |
4736
6789961fe02e
Added support for statvfs(), which is what the newer BSDs use.
Timo Sirainen <tss@iki.fi>
parents:
4648
diff
changeset
|
55 i_error(STATVFS_STR"(%s) failed: %m", path); |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
56 return -1; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
57 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
58 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
59 point_r->device_path = p_strdup(pool, buf.f_mntfromname); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
60 point_r->mount_path = p_strdup(pool, buf.f_mntonname); |
5583 | 61 #ifdef __osf__ /* Tru64 */ |
62 point_r->type = p_strdup(pool, getvfsbynumber(buf.f_type)); | |
63 #else | |
4469
e3310e19c6f3
mountpoint_get() returned broken mount_path and type with BSDs.
Timo Sirainen <tss@iki.fi>
parents:
4270
diff
changeset
|
64 point_r->type = p_strdup(pool, buf.f_fstypename); |
5583 | 65 #endif |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
66 point_r->block_size = buf.f_bsize; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
67 return 1; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
68 #else |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
69 /* Linux, Solaris: /etc/mtab reading */ |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
70 #ifdef HAVE_SYS_MNTTAB_H |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
71 struct mnttab ent; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
72 #else |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
73 struct mntent *ent; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
74 #endif |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
75 struct stat st, st2; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
76 const char *device_path = NULL, *mount_path = NULL, *type = NULL; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
77 unsigned int block_size; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
78 FILE *f; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
79 |
4195
a00c5d4915f3
Clear mountpoint struct even in error cases.
Timo Sirainen <tss@iki.fi>
parents:
4194
diff
changeset
|
80 memset(point_r, 0, sizeof(*point_r)); |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
81 if (stat(path, &st) < 0) { |
4648
93a6d2194c5d
Handle ENOENT silently and return 0.
Timo Sirainen <tss@iki.fi>
parents:
4469
diff
changeset
|
82 if (errno == ENOENT) |
93a6d2194c5d
Handle ENOENT silently and return 0.
Timo Sirainen <tss@iki.fi>
parents:
4469
diff
changeset
|
83 return 0; |
93a6d2194c5d
Handle ENOENT silently and return 0.
Timo Sirainen <tss@iki.fi>
parents:
4469
diff
changeset
|
84 |
4187
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
85 i_error("stat(%s) failed: %m", path); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
86 return -1; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
87 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
88 block_size = st.st_blksize; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
89 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
90 #ifdef HAVE_SYS_MNTTAB_H |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
91 /* Solaris */ |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
92 f = fopen(MTAB_PATH, "r"); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
93 if (f == NULL) { |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
94 i_error("fopen(%s) failed: %m", MTAB_PATH); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
95 return -1; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
96 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
97 while ((getmntent(f, &ent)) == 0) { |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
98 if (strcmp(ent.mnt_fstype, MNTTYPE_SWAP) == 0 || |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
99 strcmp(ent.mnt_fstype, MNTTYPE_IGNORE) == 0) |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
100 continue; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
101 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
102 if (stat(ent.mnt_mountp, &st2) == 0 && |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
103 CMP_DEV_T(st.st_dev, st2.st_dev)) { |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
104 device_path = ent.mnt_special; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
105 mount_path = ent.mnt_mountp; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
106 type = ent.mnt_fstype; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
107 break; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
108 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
109 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
110 fclose(f); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
111 #else |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
112 /* Linux */ |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
113 f = setmntent(MTAB_PATH, "r"); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
114 if (f == NULL) { |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
115 i_error("setmntent(%s) failed: %m", MTAB_PATH); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
116 return -1; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
117 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
118 while ((ent = getmntent(f)) != NULL) { |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
119 if (strcmp(ent->mnt_type, MNTTYPE_SWAP) == 0 || |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
120 strcmp(ent->mnt_type, MNTTYPE_IGNORE) == 0) |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
121 continue; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
122 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
123 if (stat(ent->mnt_dir, &st2) == 0 && |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
124 CMP_DEV_T(st.st_dev, st2.st_dev)) { |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
125 device_path = ent->mnt_fsname; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
126 mount_path = ent->mnt_dir; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
127 type = ent->mnt_type; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
128 break; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
129 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
130 } |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
131 endmntent(f); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
132 #endif |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
133 if (device_path == NULL) |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
134 return 0; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
135 |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
136 point_r->device_path = p_strdup(pool, device_path); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
137 point_r->mount_path = p_strdup(pool, mount_path); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
138 point_r->type = p_strdup(pool, type); |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
139 point_r->block_size = block_size; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
140 return 1; |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
141 #endif |
e6d38617efdf
Added mountpoint_get() for looking up a path's mount point information.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
142 } |