From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Monakhov Subject: [PATCH 0/6] RFC quota: Redesign IO error handling interface Date: Thu, 8 Apr 2010 22:04:19 +0400 Message-ID: <1270749865-25441-1-git-send-email-dmonakhov@openvz.org> Cc: jack@suse.cz, hch@infradead.org, sandeen@redhat.com, Dmitry Monakhov To: linux-fsdevel@vger.kernel.org Return-path: Received: from mail-bw0-f209.google.com ([209.85.218.209]:64715 "EHLO mail-bw0-f209.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758238Ab0DHSEv (ORCPT ); Thu, 8 Apr 2010 14:04:51 -0400 Received: by bwz1 with SMTP id 1so1996475bwz.21 for ; Thu, 08 Apr 2010 11:04:49 -0700 (PDT) Sender: linux-fsdevel-owner@vger.kernel.org List-ID: This patchset is tended to provide interface for handling IO errors from internal quota code. Any error must being returned to fs-caller to signal about possible quota inconsistency. I've done it in following way: 1) Handle low-level io errors from dqget() and it's callers 2) Handle errors from dquot_initialize This path catch most of IO error, but no all. 3) Check what i_dquot was initialized in each low-level function. There are two types of such functions 3A) Charging functions (alloc_{space,inode}): Caller of such function may easy handle an error and abort an operation. 3B) nofail functions (claim_space,free_{space,inode}) In most cases caller can not abort an operation even if inode's quotas was semi-initialized, so I just skip this functions for now. I would like to know you ideas suggestions about this. Note: Only ext4's part was basically tested for now, others was just compile tested.