NFS: dprintks in directio code were referencing task after put
authorFred Isaman <iisaman@netapp.com>
Fri, 20 Apr 2012 18:47:40 +0000 (14:47 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 27 Apr 2012 18:10:37 +0000 (14:10 -0400)
Signed-off-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/direct.c

index 5897dfe48118bbf7da424a24d9f42d3434e5e15d..fb7fbaa79c209bc36142b5671d9f526fd1cebb7b 100644 (file)
@@ -357,15 +357,15 @@ static ssize_t nfs_direct_read_schedule_segment(struct nfs_direct_req *dreq,
                task = rpc_run_task(&task_setup_data);
                if (IS_ERR(task))
                        break;
-               rpc_put_task(task);
 
                dprintk("NFS: %5u initiated direct read call "
                        "(req %s/%Ld, %zu bytes @ offset %Lu)\n",
-                               data->task.tk_pid,
+                               task->tk_pid,
                                inode->i_sb->s_id,
                                (long long)NFS_FILEID(inode),
                                bytes,
                                (unsigned long long)data->args.offset);
+               rpc_put_task(task);
 
                started += bytes;
                user_addr += bytes;
@@ -784,15 +784,15 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_direct_req *dreq,
                task = rpc_run_task(&task_setup_data);
                if (IS_ERR(task))
                        break;
-               rpc_put_task(task);
 
                dprintk("NFS: %5u initiated direct write call "
                        "(req %s/%Ld, %zu bytes @ offset %Lu)\n",
-                               data->task.tk_pid,
+                               task->tk_pid,
                                inode->i_sb->s_id,
                                (long long)NFS_FILEID(inode),
                                bytes,
                                (unsigned long long)data->args.offset);
+               rpc_put_task(task);
 
                started += bytes;
                user_addr += bytes;