Lines Matching refs:mp
47 static void MpDeleteFromList(struct MountPoint *mp)
51 /* delete mp from mount list */
52 if (g_mountPoints == mp) {
53 g_mountPoints = mp->mNext;
56 if (prev->mNext != mp) {
60 prev->mNext = mp->mNext;
69 struct MountPoint *mp = g_mountPoints;
76 while ((mp != NULL) && (mp->mPath != NULL)) {
77 const char *mPath = mp->mPath;
111 bestMp = mp;
122 mp = mp->mNext;
130 struct MountPoint *mp = g_mountPoints;
142 while ((mp != NULL) && (mp->mPath != NULL)) {
143 mPath = mp->mPath;
163 return mp;
165 mp = mp->mNext;
174 struct MountPoint *mp = NULL;
180 /* find mp by target, to see if it was mounted */
181 mp = VfsMpFind(target, &pathInMp);
182 if (mp != NULL && pathInMp != NULL) {
200 mp = (struct MountPoint *)LOSCFG_FS_MALLOC_HOOK(sizeof(struct MountPoint) + ssize + tsize);
201 if (mp == NULL) {
206 mp->mFs = mFs;
207 mp->mDev = NULL;
208 mp->mRefs = 0;
209 mp->mWriteEnable = (mountflags & MS_RDONLY) ? FALSE : TRUE;
210 mp->mFs->fsRefs++;
212 if (source != NULL && strcpy_s((char *)mp + sizeof(struct MountPoint), ssize, source) != EOK) {
213 LOSCFG_FS_FREE_HOOK(mp);
218 if (strcpy_s((char *)mp + sizeof(struct MountPoint) + ssize, tsize, target) != EOK) {
219 LOSCFG_FS_FREE_HOOK(mp);
223 mp->mDev = source ? (char *)mp + sizeof(struct MountPoint) : NULL;
224 mp->mPath = (char *)mp + sizeof(struct MountPoint) + ssize;
226 return mp;
235 struct MountPoint *mp;
237 mp = VfsMpFind(target, NULL);
238 if (mp == NULL) {
243 LOS_ASSERT(mp->mFs != NULL);
244 LOS_ASSERT(mp->mFs->fsMops != NULL);
245 LOS_ASSERT(mp->mFs->fsMops->mount != NULL);
247 return mp->mFs->fsMops->mount(mp, mountflags, data);
271 struct MountPoint *mp = NULL;
285 mp = VfsMountPointInit(source, target, fsType, mountflags);
286 if (mp == NULL) {
291 ret = mp->mFs->fsMops->mount(mp, mountflags, data);
298 mp->mNext = g_mountPoints;
299 g_mountPoints = mp;
304 LOSCFG_FS_FREE_HOOK(mp);
311 struct MountPoint *mp = NULL;
319 mp = VfsMpFind(target, NULL);
320 if ((mp == NULL) || (mp->mRefs != 0)) {
324 if ((mp->mFs == NULL) || (mp->mFs->fsMops == NULL) ||
325 (mp->mFs->fsMops->umount == NULL)) {
329 ret = mp->mFs->fsMops->umount(mp);
335 /* delete mp from mount list */
336 MpDeleteFromList(mp);
337 mp->mFs->fsRefs--;
338 LOSCFG_FS_FREE_HOOK(mp);
349 static void CloseFdsInMp(const struct MountPoint *mp)
356 if ((f->fMp == mp) &&
366 struct MountPoint *mp = NULL;
374 mp = VfsMpFind(target, NULL);
375 if ((mp == NULL) || (mp->mRefs != 0) ||
376 (mp->mFs == NULL) || (mp->mFs->fsMops == NULL) ||
377 (mp->mFs->fsMops->umount2 == NULL)) {
383 CloseFdsInMp(mp);
386 ret = mp->mFs->fsMops->umount2(mp, flag);
392 /* delete mp from mount list */
393 MpDeleteFromList(mp);
394 mp->mFs->fsRefs--;
395 LOSCFG_FS_FREE_HOOK(mp);