patch-2.4.18 linux/fs/proc/base.c
Next file: linux/fs/qnx4/bitmap.c
Previous file: linux/fs/partitions/msdos.c
Back to the patch index
Back to the overall index
- Lines: 31
- Date:
Wed Feb 13 17:44:14 2002
- Orig file:
linux.orig/fs/proc/base.c
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/fs/proc/base.c linux/fs/proc/base.c
@@ -553,6 +553,7 @@
task_unlock(p);
if (!files)
goto out;
+ read_lock(&files->file_lock);
for (fd = filp->f_pos-2;
fd < files->max_fds;
fd++, filp->f_pos++) {
@@ -560,6 +561,7 @@
if (!fcheck_files(files, fd))
continue;
+ read_unlock(&files->file_lock);
j = NUMBUF;
i = fd;
@@ -570,9 +572,13 @@
} while (i);
ino = fake_ino(pid, PROC_PID_FD_DIR + fd);
- if (filldir(dirent, buf+j, NUMBUF-j, fd+2, ino, DT_LNK) < 0)
+ if (filldir(dirent, buf+j, NUMBUF-j, fd+2, ino, DT_LNK) < 0) {
+ read_lock(&files->file_lock);
break;
+ }
+ read_lock(&files->file_lock);
}
+ read_unlock(&files->file_lock);
put_files_struct(files);
}
out:
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)