From patchwork Wed Apr 20 10:19:07 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artem Bityutskiy X-Patchwork-Id: 92189 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 607D5B6FCD for ; Wed, 20 Apr 2011 20:23:39 +1000 (EST) Received: from canuck.infradead.org ([2001:4978:20e::1]) by bombadil.infradead.org with esmtps (Exim 4.72 #1 (Red Hat Linux)) id 1QCUVW-0001ud-6i; Wed, 20 Apr 2011 10:19:38 +0000 Received: from localhost ([127.0.0.1] helo=canuck.infradead.org) by canuck.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1QCUVU-0006SS-JB; Wed, 20 Apr 2011 10:19:36 +0000 Received: from smtp.nokia.com ([147.243.1.47] helo=mgw-sa01.nokia.com) by canuck.infradead.org with esmtps (Exim 4.72 #1 (Red Hat Linux)) id 1QCUS2-0006Av-P5 for linux-mtd@lists.infradead.org; Wed, 20 Apr 2011 10:16:14 +0000 Received: from nokia.com (localhost [127.0.0.1]) by mgw-sa01.nokia.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id p3KAFmV1009491 for ; Wed, 20 Apr 2011 13:16:01 +0300 Received: from eru.research.nokia.com ([[172.21.24.121]]) by mgw-sa01.nokia.com with ESMTP id p3KAFTSR009198 ; Wed, 20 Apr 2011 13:15:47 +0300 From: Artem Bityutskiy To: MTD list Subject: [PATCH 34/35] fs-tests: integck: lessen memory consumption even more Date: Wed, 20 Apr 2011 13:19:07 +0300 Message-Id: <1303294748-5492-35-git-send-email-dedekind1@gmail.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1303294748-5492-1-git-send-email-dedekind1@gmail.com> References: <1303294748-5492-1-git-send-email-dedekind1@gmail.com> X-Nokia-AV: Clean X-CRM114-Version: 20090807-BlameThorstenAndJenny ( TRE 0.7.6 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20110420_061603_457834_AD01E3A4 X-CRM114-Status: GOOD ( 13.05 ) X-Spam-Score: 3.4 (+++) X-Spam-Report: SpamAssassin version 3.3.1 on canuck.infradead.org summary: Content analysis details: (3.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, low trust [147.243.1.47 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is freemail (dedekind1[at]gmail.com) 0.0 DKIM_ADSP_CUSTOM_MED No valid author signature, adsp_override is CUSTOM_MED 2.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (dedekind1[at]gmail.com) 0.0 RFC_ABUSE_POST Both abuse and postmaster missing on sender domain 1.2 NML_ADSP_CUSTOM_MED ADSP custom_med hit, and not from a mailing list Cc: Adrian Hunter X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Artem Bityutskiy This patch kills the "name" field from 'struct file_info' where we stored the original file name. We do not really need to keep this name around, becaus it might have long gone and it is not very interesting. Besides, we have several memory leaks where we leak 'file->name' strings, so this is the easiest way to fix those leaks as well. Signed-off-by: Artem Bityutskiy --- tests/fs-tests/integrity/integck.c | 17 ++++++----------- 1 files changed, 6 insertions(+), 11 deletions(-) diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c index d5ee08e..310e228 100644 --- a/tests/fs-tests/integrity/integck.c +++ b/tests/fs-tests/integrity/integck.c @@ -143,7 +143,6 @@ struct dir_entry_info; struct file_info /* Each file has one of these */ { - char *name; /* Original name */ struct write_info *writes; /* Record accumulated writes to the file */ struct write_info *raw_writes; /* Record in order all writes to the file */ @@ -398,7 +397,6 @@ static void add_dir_entry(struct dir_info *parent, char type, const char *name, if (entry->type == 'f') { struct file_info *file = target; - file->name = dup_string(name); entry->file = file; entry->next_link = file->links; if (file->links) @@ -639,7 +637,6 @@ static int file_unlink(struct dir_entry_info *entry) /* Free struct file_info if file is not open and not linked */ if (!file->fds && !file->links) { free_writes_info(file); - free(file->name); free(file); } @@ -697,7 +694,6 @@ static void file_info_display(struct file_info *file) unsigned int wcnt; normsg("File Info:"); - normsg(" Original name: %s", file->name); normsg(" Link count: %d", file->link_count); normsg(" Links:"); entry = file->links; @@ -805,7 +801,7 @@ static ssize_t file_write_data(struct file_info *file, int fd, off_t offset, } pcv("failed to write %zu bytes to offset %llu of file %s", block, (unsigned long long)(offset + actual), - file->name); + file->links->name); return -1; } remains -= written; @@ -955,7 +951,7 @@ static int file_ftruncate(struct file_info *file, int fd, off_t new_length) return 1; } else pcv("cannot truncate file %s to %llu", - file->name, (unsigned long long)new_length); + file->links->name, (unsigned long long)new_length); return -1; } @@ -1199,7 +1195,6 @@ static void file_close(struct fd_info *fdi) free(fdi); if (!file->link_count && !file->fds) { free_writes_info(file); - free(file->name); free(file); } return; @@ -1249,7 +1244,7 @@ static void save_file(int fd, struct file_info *file) /* Open file to save contents to */ strcpy(name, "/tmp/"); - strcat(name, file->name); + strcat(name, file->links->name); strcat(name, ".integ.sav.read"); normsg("Saving %sn", name); w_fd = open(name, O_CREAT | O_WRONLY, 0777); @@ -1269,7 +1264,7 @@ static void save_file(int fd, struct file_info *file) /* Open file to save contents to */ strcpy(name, "/tmp/"); - strcat(name, file->name); + strcat(name, file->links->name); strcat(name, ".integ.sav.written"); normsg("Saving %s", name); w_fd = open(name, O_CREAT | O_WRONLY, 0777); @@ -2028,12 +2023,12 @@ static int operate_on_open_file(struct fd_info *fdi) ret = fsync(fdi->fd); if (ret) pcv("fsync failed for %s", - fdi->file->name); + fdi->file->links->name); } else { ret = fdatasync(fdi->fd); if (ret) pcv("fdatasync failed for %s", - fdi->file->name); + fdi->file->links->name); } } }