Lines Matching refs:mp
28 static void OsMpDeleteFromList(struct TagMountPoint *mp)
32 if (g_mountPoints == mp) {
33 g_mountPoints = mp->mNext;
38 if (prev->mNext != mp) {
42 prev->mNext = mp->mNext;
84 struct TagMountPoint *mp = g_mountPoints;
98 while ((mp != NULL) && (mp->mPath != NULL)) {
99 matches = OsVfsFindMpByPath(mp->mPath, path);
102 bestMp = mp;
113 mp = mp->mNext;
130 static void OsVfsFreeMp(struct TagMountPoint *mp)
132 if (mp == NULL) {
135 if (mp->mPath != NULL) {
136 free((void *)mp->mPath);
138 if (mp->mDev != NULL) {
139 free((void *)mp->mDev);
141 free(mp);
149 struct TagMountPoint *mp = NULL;
158 mp = OsVfsFindMp(target, &pathInMp);
159 if (mp != NULL && pathInMp != NULL) {
170 mp = (struct TagMountPoint *)malloc(sizeof(struct TagMountPoint));
171 if (mp == NULL) {
175 if (memset_s(mp, sizeof(struct TagMountPoint), 0, sizeof(struct TagMountPoint)) != EOK) {
176 free(mp);
181 mp->mFs = mFs;
182 mp->mDev = NULL;
184 mp->mDev = strdup(source);
185 if (mp->mDev == NULL) {
186 OsVfsFreeMp(mp);
191 mp->mPath = strdup(target);
192 if (mp->mPath == NULL) {
193 OsVfsFreeMp(mp);
198 ret = mp->mFs->fsMops->mount(mp, mountflags, data);
200 OsVfsFreeMp(mp);
204 mp->mRefs = 0;
205 mp->mWriteEnable = (mountflags & MS_RDONLY) ? FALSE : TRUE;
206 mp->mFs->fsRefs++;
207 mp->mNext = g_mountPoints;
208 g_mountPoints = mp;
215 struct TagMountPoint *mp = NULL;
224 mp = OsVfsFindMp(target, &pathInMp);
225 if ((mp == NULL) || (mp->mRefs != 0) ||
226 (mp->mFs == NULL) || (mp->mFs->fsMops == NULL) ||
227 (mp->mFs->fsMops->umount == NULL)) {
232 ret = mp->mFs->fsMops->umount(mp);
238 OsMpDeleteFromList(mp);
239 mp->mFs->fsRefs--;
240 free((void *)mp->mPath);
241 free((void *)mp->mDev);
242 free(mp);
248 static void OsCloseFdsInMp(struct TagMountPoint *mp)
255 if ((f->fMp == mp) &&
264 struct TagMountPoint *mp = NULL;
273 mp = OsVfsFindMp(target, &pathInMp);
274 if ((mp == NULL) || (mp->mRefs != 0) ||
275 (mp->mFs == NULL) || (mp->mFs->fsMops == NULL) ||
276 (mp->mFs->fsMops->umount2 == NULL)) {
283 OsCloseFdsInMp(mp);
286 ret = mp->mFs->fsMops->umount2(mp, flag);
292 OsMpDeleteFromList(mp);
293 mp->mFs->fsRefs--;
294 free((void *)mp->mPath);
295 free((void *)mp->mDev);
296 free(mp);