|
@@ -27,7 +27,7 @@ struct raw3270_fn fs3270_fn;
|
|
|
|
|
|
struct fs3270 {
|
|
|
struct raw3270_view view;
|
|
|
- pid_t fs_pid; /* Pid of controlling program. */
|
|
|
+ struct pid *fs_pid; /* Pid of controlling program. */
|
|
|
int read_command; /* ccw command to use for reads. */
|
|
|
int write_command; /* ccw command to use for writes. */
|
|
|
int attention; /* Got attention. */
|
|
@@ -102,7 +102,7 @@ fs3270_restore_callback(struct raw3270_request *rq, void *data)
|
|
|
fp = (struct fs3270 *) rq->view;
|
|
|
if (rq->rc != 0 || rq->rescnt != 0) {
|
|
|
if (fp->fs_pid)
|
|
|
- kill_proc(fp->fs_pid, SIGHUP, 1);
|
|
|
+ kill_pid(fp->fs_pid, SIGHUP, 1);
|
|
|
}
|
|
|
fp->rdbuf_size = 0;
|
|
|
raw3270_request_reset(rq);
|
|
@@ -173,7 +173,7 @@ fs3270_save_callback(struct raw3270_request *rq, void *data)
|
|
|
*/
|
|
|
if (rq->rc != 0 || rq->rescnt == 0) {
|
|
|
if (fp->fs_pid)
|
|
|
- kill_proc(fp->fs_pid, SIGHUP, 1);
|
|
|
+ kill_pid(fp->fs_pid, SIGHUP, 1);
|
|
|
fp->rdbuf_size = 0;
|
|
|
} else
|
|
|
fp->rdbuf_size = fp->rdbuf->size - rq->rescnt;
|
|
@@ -442,7 +442,7 @@ fs3270_open(struct inode *inode, struct file *filp)
|
|
|
return PTR_ERR(fp);
|
|
|
|
|
|
init_waitqueue_head(&fp->wait);
|
|
|
- fp->fs_pid = current->pid;
|
|
|
+ fp->fs_pid = get_pid(task_pid(current));
|
|
|
rc = raw3270_add_view(&fp->view, &fs3270_fn, minor);
|
|
|
if (rc) {
|
|
|
fs3270_free_view(&fp->view);
|
|
@@ -480,7 +480,8 @@ fs3270_close(struct inode *inode, struct file *filp)
|
|
|
fp = filp->private_data;
|
|
|
filp->private_data = NULL;
|
|
|
if (fp) {
|
|
|
- fp->fs_pid = 0;
|
|
|
+ put_pid(fp->fs_pid);
|
|
|
+ fp->fs_pid = NULL;
|
|
|
raw3270_reset(&fp->view);
|
|
|
raw3270_put_view(&fp->view);
|
|
|
raw3270_del_view(&fp->view);
|