In nfs_direct_write_completion(), the local variable req isn't used outside the *while* loop and is assigned to right at the start of that loop's body, so its initializer appears useless -- drop it; then move the declaration to the loop body (which happens to have a pointless empty line anyway)... Found by Linux Verification Center (linuxtesting.org) with the Svace static analysis tool. Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxx> --- This patch is against the linux-next branch of Trond Myklebust's linux-nfs.git repo. fs/nfs/direct.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux-nfs/fs/nfs/direct.c =================================================================== --- linux-nfs.orig/fs/nfs/direct.c +++ linux-nfs/fs/nfs/direct.c @@ -757,7 +757,6 @@ static void nfs_direct_write_completion( { struct nfs_direct_req *dreq = hdr->dreq; struct nfs_commit_info cinfo; - struct nfs_page *req = nfs_list_entry(hdr->pages.next); struct inode *inode = dreq->inode; int flags = NFS_ODIRECT_DONE; @@ -786,6 +785,7 @@ static void nfs_direct_write_completion( spin_unlock(&inode->i_lock); while (!list_empty(&hdr->pages)) { + struct nfs_page *req; req = nfs_list_entry(hdr->pages.next); nfs_list_remove_request(req);