summaryrefslogtreecommitdiff
path: root/fs/bad_inode.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2008-02-07 00:15:27 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-07 08:42:26 -0800
commitb46980feed937868d3333514028bfbe9a651e4ca (patch)
tree97e610932986223932887af3c0ea00234856e540 /fs/bad_inode.c
parente231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f (diff)
downloadlwn-b46980feed937868d3333514028bfbe9a651e4ca.tar.gz
lwn-b46980feed937868d3333514028bfbe9a651e4ca.zip
iget: introduce a function to register iget failure
Introduce a function to register failure in an inode construction path. This includes marking the inode under construction as bad, unlocking it and releasing it. Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/bad_inode.c')
-rw-r--r--fs/bad_inode.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/bad_inode.c b/fs/bad_inode.c
index 521ff7caadbd..f1c2ea8342f5 100644
--- a/fs/bad_inode.c
+++ b/fs/bad_inode.c
@@ -359,3 +359,17 @@ int is_bad_inode(struct inode *inode)
}
EXPORT_SYMBOL(is_bad_inode);
+
+/**
+ * iget_failed - Mark an under-construction inode as dead and release it
+ * @inode: The inode to discard
+ *
+ * Mark an under-construction inode as dead and release it.
+ */
+void iget_failed(struct inode *inode)
+{
+ make_bad_inode(inode);
+ unlock_new_inode(inode);
+ iput(inode);
+}
+EXPORT_SYMBOL(iget_failed);