Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37716154
en ru br
Репозитории ALT
S:2.1.5-alt4
5.1: 2.1.5-alt3
4.1: 2.1.5-alt3
4.0: 2.1.5-alt3
3.0: 2.1.0-alt1
www.altlinux.org/Changes

Другие репозитории
Upstream:2.1.5

Группа :: Система/Ядро и оборудование
Пакет: eject

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: eject-2.1.0-alt-supersubmount.patch
Скачать


--- eject-2.1.0/eject.c~	2005-08-03 18:02:10 +0400
+++ eject-2.1.0/eject.c	2005-08-03 18:16:15 +0400
@@ -711,6 +711,15 @@ static int MountedDevice(const char *nam
 
 	for (mntentry = getmntent(fp); mntentry; mntentry = getmntent(fp)) {
  			int mtabmaj, mtabmin;
+			if (strcmp(mntentry->mnt_type,"supermount") == 0) {
+				m_option = 1;
+			}
+			if (strcmp(mntentry->mnt_type,"subfs") == 0) {
+				m_option = 1;
+			}
+			if (strcmp(mntentry->mnt_fsname, "none") == 0) {
+				continue;
+			}
 			GetMajorMinor(mntentry->mnt_fsname, &mtabmaj, &mtabmin);
 			if (((strcmp(mntentry->mnt_fsname, name) == 0) || (strcmp(mntentry->mnt_dir, name) == 0)) ||
  				((maj != -1) && (maj == mtabmaj) && (min == mtabmin))) {
@@ -752,6 +761,9 @@ static int MountableDevice(const char *n
 
 	for (mntentry = getmntent(fp); mntentry; mntentry = getmntent(fp)) {
 		if (strcmp(mntentry->mnt_fsname,"#") && strcmp(mntentry->mnt_dir, name) == 0) {
+			if (strcmp(mntentry->mnt_fsname, "none") == 0) {
+				continue;
+			}
 			endmntent(fp);
 			*deviceName = strdup(mntentry->mnt_fsname);
 			*mountName = strdup(mntentry->mnt_dir);
@@ -787,8 +799,17 @@ static void UnmountDevices(const char *p
 	}
 
 	for (mntentry = getmntent(fp); mntentry; mntentry = getmntent(fp)) {
+			if (strcmp(mntentry->mnt_type,"supermount") == 0) {
+				m_option = 1;
+			}
+			if (strcmp(mntentry->mnt_type,"subfs") == 0) {
+				m_option = 1;
+			}
+			if (strcmp(mntentry->mnt_fsname, "none") == 0) {
+				continue;
+			}
 			status = regexec(&preg, mntentry->mnt_fsname, 0, 0, 0);
- 			if (status == 0) {
+ 			if (status == 0 && m_option != 1) {
  				if (v_option)
 					printf(_("%s: unmounting `%s'\n"), __progname, mntentry->mnt_fsname);
 				Unmount(mntentry->mnt_fsname);
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin