From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Tue, 17 Feb 2015 19:19:56 +0000 Subject: [Cluster-devel] [GFS2 PATCH] GFS2: Allocate reservation during write_begin if needed In-Reply-To: <2063966524.14688631.1424200190610.JavaMail.zimbra@redhat.com> References: <1649964129.14531060.1424192978271.JavaMail.zimbra@redhat.com> <54E38FC9.2020709@redhat.com> <2063966524.14688631.1424200190610.JavaMail.zimbra@redhat.com> Message-ID: <54E3945C.6050606@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, On 17/02/15 19:09, Bob Peterson wrote: > ----- Original Message ----- >> Hi, >> >> >> Since we set the allocation structure when the write call begins, and it >> is not deallocated until there are no writers left with the file open, >> how does this happen? >> >> Steve. > Hi, > > In a normal write, the code goes through gfs2_page_mkwrite or > gfs2_file_aio_write. In the failing scenario, it's going through > sendfile. I suppose I could patch sendfile as an alternative, but > the advantage here is that this patch will do it only if a block > allocation is needed. > > Regards, > > Bob Peterson > Red Hat File Systems Ah, I see. In which case that code path should be patched. So it should be part of the splice code I think, since it should be done at the higher level, and not at the write_begin level, since that is too late. We should have a call to the reservation code too at that point, to ensure that we don't have fragmentation issues. So we need a wrapper for |iter_file_splice_write| along the lines of gfs2_file_write_iter I think, Steve. -------------- next part -------------- An HTML attachment was scrubbed... URL: