[patch 1/5] blktrace: avoid device duplication

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Fixup for bz 501457.

Problem:
If the device list file contains the same device
as supplied on the command line, blktrace stops
immediately and further I/O tracing is impossible.

Bug: device duplication in the devpaths ends with
programm termination (BLKTRACESETUP ioctl returns
error) while resources (open files in debugfs) are
not released.

Solution:
Make sure devices are not duplicated in devpaths
pool.

Signed-off-by: Edward Shishkin <edward@xxxxxxxxxx>
---
 blktrace.c |    9 +++++++++
 1 file changed, 9 insertions(+)

--- blktrace.orig/blktrace.c
+++ blktrace/blktrace.c
@@ -1200,8 +1200,17 @@ static int add_devpath(char *path)
 {
 	int fd;
 	struct devpath *dpp;
+	struct list_head *p;
 
 	/*
+	 * Verify device is not duplicated
+	 */
+	__list_for_each(p, &devpaths) {
+	       struct devpath *tmp = list_entry(p, struct devpath, head);
+	       if (!strcmp(tmp->path, path))
+		        return 0;
+	}
+	/*
 	 * Verify device is valid before going too far
 	 */
 	fd = my_open(path, O_RDONLY | O_NONBLOCK);

[Index of Archives]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux