From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: Re: [RFC PATCH] coredump: fix incomplete core file created when dump_skip was used last Date: Wed, 22 Oct 2014 18:55:30 +0200 Message-ID: <20141022165530.GA30358@redhat.com> References: <1413932228-27642-1-git-send-email-victor.kamensky@linaro.org> <1413932228-27642-2-git-send-email-victor.kamensky@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Alexander Viro , linux-fsdevel@vger.kernel.org, Andrew Morton , Kees Cook , linux-kernel@vger.kernel.org To: Victor Kamensky Return-path: Content-Disposition: inline In-Reply-To: <1413932228-27642-2-git-send-email-victor.kamensky@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On 10/21, Victor Kamensky wrote: > > +static int dump_write_last_byte(struct coredump_params *cprm) > +{ > + char lastbyte = 0; > + struct file *file = cprm->file; > + > + if (file->f_op->llseek && file->f_op->llseek != no_llseek) { > + if (dump_interrupted() || > + file->f_op->llseek(file, -1, SEEK_CUR) < 0) > + return 0; > + if (!dump_emit(cprm, &lastbyte, 1)) > + return 0; > + } > + return 1; > +} Perhaps do_truncate(cprm.file->f_path.dentry, ->f_pos) makes more sense? and unless I missed something cprm->last_op_status can be avoided, we can simply check f_pos != i_size_read() at the end? Oleg.