Quellcode durchsuchen

nfsd: Fix a file leak on nfsd4_layout_setlease failure

If nfsd4_layout_setlease fails, nfsd will not put ls->ls_file.

Fix commit c5c707f96f "nfsd: implement pNFS layout recalls".

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Kinglong Mee vor 10 Jahren
Ursprung
Commit
1ca4b88e7d
1 geänderte Dateien mit 1 neuen und 0 gelöschten Zeilen
  1. 1 0
      fs/nfsd/nfs4layouts.c

+ 1 - 0
fs/nfsd/nfs4layouts.c

@@ -212,6 +212,7 @@ nfsd4_alloc_layout_stateid(struct nfsd4_compound_state *cstate,
 	BUG_ON(!ls->ls_file);
 	BUG_ON(!ls->ls_file);
 
 
 	if (nfsd4_layout_setlease(ls)) {
 	if (nfsd4_layout_setlease(ls)) {
+		fput(ls->ls_file);
 		put_nfs4_file(fp);
 		put_nfs4_file(fp);
 		kmem_cache_free(nfs4_layout_stateid_cache, ls);
 		kmem_cache_free(nfs4_layout_stateid_cache, ls);
 		return NULL;
 		return NULL;