fix #497303
This commit is contained in:
parent
ecd4529031
commit
afd7e1de87
131
psmisc-22.6-fuser-remove-mountlist.patch
Normal file
131
psmisc-22.6-fuser-remove-mountlist.patch
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
diff -ru psmisc-22.6.org/src/fuser.c psmisc-22.6/src/fuser.c
|
||||||
|
--- psmisc-22.6.org/src/fuser.c 2009-01-23 19:24:11.000000000 +0200
|
||||||
|
+++ psmisc-22.6/src/fuser.c 2009-01-23 19:28:43.000000000 +0200
|
||||||
|
@@ -69,7 +69,6 @@
|
||||||
|
|
||||||
|
int parse_mount(struct names *this_name, struct device_list **dev_list);
|
||||||
|
static void add_device(struct device_list **dev_list, struct names *this_name, dev_t device);
|
||||||
|
-void scan_mount_devices(const opt_type opts, struct mountdev_list **mount_devices);
|
||||||
|
void fill_unix_cache(struct unixsocket_list **unixsocket_head);
|
||||||
|
static dev_t find_net_dev(void);
|
||||||
|
static void scan_procs(struct names *names_head, struct inode_list *ino_head, struct device_list *dev_head);
|
||||||
|
@@ -365,10 +364,9 @@
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-int parse_mounts(struct names *this_name, struct mountdev_list *mounts, struct device_list **dev_list, const char opts)
|
||||||
|
+int parse_mounts(struct names *this_name, struct device_list **dev_list, const char opts)
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
- struct mountdev_list *mountptr;
|
||||||
|
dev_t match_device;
|
||||||
|
|
||||||
|
if (stat(this_name->filename, &st) != 0) {
|
||||||
|
@@ -380,13 +378,7 @@
|
||||||
|
match_device = st.st_rdev;
|
||||||
|
else
|
||||||
|
match_device = st.st_dev;
|
||||||
|
- for (mountptr = mounts ; mountptr != NULL ; mountptr = mountptr->next) {
|
||||||
|
- if (mountptr->device == match_device) {
|
||||||
|
- /*printf("Debug: adding parse_mounts() adding %s\n",
|
||||||
|
- this_name->filename);*/
|
||||||
|
- add_device(dev_list, this_name, match_device);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ add_device(dev_list, this_name, match_device);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -660,7 +652,6 @@
|
||||||
|
int ipv4_only, ipv6_only;
|
||||||
|
#endif
|
||||||
|
unsigned char default_namespace = NAMESPACE_FILE;
|
||||||
|
- struct mountdev_list *mount_devices = NULL;
|
||||||
|
struct device_list *match_devices = NULL;
|
||||||
|
struct unixsocket_list *unixsockets = NULL;
|
||||||
|
|
||||||
|
@@ -692,7 +683,6 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
netdev = find_net_dev();
|
||||||
|
- scan_mount_devices(opts, &mount_devices);
|
||||||
|
fill_unix_cache(&unixsockets);
|
||||||
|
|
||||||
|
/* getopt doesnt like things like -SIGBLAH */
|
||||||
|
@@ -831,7 +821,7 @@
|
||||||
|
parse_file(this_name, &match_inodes);
|
||||||
|
parse_unixsockets(this_name, &match_inodes, unixsockets);
|
||||||
|
if (opts & OPT_MOUNTPOINT || opts & OPT_MOUNTS)
|
||||||
|
- parse_mounts(this_name, mount_devices, &match_devices, opts);
|
||||||
|
+ parse_mounts(this_name, &match_devices, opts);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1082,20 +1072,6 @@
|
||||||
|
return st.st_uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void add_mount_device(struct mountdev_list **mount_head,const char *fsname, const char *dir, dev_t device)
|
||||||
|
-{
|
||||||
|
- struct mountdev_list *newmount;
|
||||||
|
- /*printf("Adding mount Path: %s Dir:%s dev:%0x\n",dir, fsname, device);*/
|
||||||
|
-
|
||||||
|
- if ( (newmount = malloc(sizeof(struct mountdev_list))) == NULL)
|
||||||
|
- return;
|
||||||
|
- newmount->fsname = strdup(fsname);
|
||||||
|
- newmount->dir = strdup(dir);
|
||||||
|
- newmount->device = device;
|
||||||
|
- newmount->next = *mount_head;
|
||||||
|
- *mount_head = newmount;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
/*
|
||||||
|
* fill_unix_cache : Create a list of Unix sockets
|
||||||
|
* This list is used later for matching purposes
|
||||||
|
@@ -1135,28 +1111,6 @@
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
-/*
|
||||||
|
- * scan_mount_devices : Create a list of mount points and devices
|
||||||
|
- * This list is used later for matching purposes
|
||||||
|
- */
|
||||||
|
-void scan_mount_devices(const opt_type opts, struct mountdev_list **mount_devices)
|
||||||
|
-{
|
||||||
|
- FILE *mntfp;
|
||||||
|
- struct mntent *mnt_ptr;
|
||||||
|
- struct stat st;
|
||||||
|
-
|
||||||
|
- if ( (mntfp = setmntent("/etc/mtab","r")) == NULL) {
|
||||||
|
- fprintf(stderr, _("Cannot open /etc/mtab: %s\n"),
|
||||||
|
- strerror(errno));
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
- while ( (mnt_ptr = getmntent(mntfp)) != NULL) {
|
||||||
|
- if (stat(mnt_ptr->mnt_dir, &st) == 0) {
|
||||||
|
- add_mount_device(mount_devices, mnt_ptr->mnt_fsname, mnt_ptr->mnt_dir, st.st_dev);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
#ifdef DEBUG
|
||||||
|
/* often not used, doesnt need translation */
|
||||||
|
static void debug_match_lists(struct names *names_head, struct inode_list *ino_head, struct device_list *dev_head)
|
||||||
|
diff -ru psmisc-22.6.org/src/fuser.h psmisc-22.6/src/fuser.h
|
||||||
|
--- psmisc-22.6.org/src/fuser.h 2009-01-23 19:24:11.000000000 +0200
|
||||||
|
+++ psmisc-22.6/src/fuser.h 2009-01-23 19:29:48.000000000 +0200
|
||||||
|
@@ -58,14 +58,6 @@
|
||||||
|
struct inode_list *next;
|
||||||
|
};
|
||||||
|
|
||||||
|
-struct mountdev_list {
|
||||||
|
- char *fsname;
|
||||||
|
- char *dir;
|
||||||
|
- dev_t device;
|
||||||
|
- struct mountdev_list *next;
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-
|
||||||
|
struct device_list {
|
||||||
|
struct names *name;
|
||||||
|
dev_t device;
|
@ -1,7 +1,7 @@
|
|||||||
Summary: Utilities for managing processes on your system
|
Summary: Utilities for managing processes on your system
|
||||||
Name: psmisc
|
Name: psmisc
|
||||||
Version: 22.6
|
Version: 22.6
|
||||||
Release: 9%{?dist}
|
Release: 10%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
||||||
@ -10,6 +10,7 @@ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|||||||
|
|
||||||
Patch0: psmisc-22.6-types.patch
|
Patch0: psmisc-22.6-types.patch
|
||||||
Patch1: psmisc-22.6-pstree-overflow.patch
|
Patch1: psmisc-22.6-pstree-overflow.patch
|
||||||
|
Patch2: psmisc-22.6-fuser-remove-mountlist.patch
|
||||||
|
|
||||||
BuildRequires: libselinux-devel
|
BuildRequires: libselinux-devel
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
@ -28,6 +29,7 @@ of processes that are using specified files or filesystems.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1 -b .types
|
%patch0 -p1 -b .types
|
||||||
%patch1 -p1 -b .overflow
|
%patch1 -p1 -b .overflow
|
||||||
|
%patch2 -p1 -b .mount
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE"
|
export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE"
|
||||||
@ -68,6 +70,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Apr 23 2009 Daniel Novotny <dnovotny@redhat.com> - 22.6-10
|
||||||
|
- fix #497303 - fuser -m <dev> doesn't work after lazy unmount
|
||||||
|
|
||||||
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 22.6-9
|
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 22.6-9
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user