Roel Kluin <[EMAIL PROTECTED]> wrote:
> > + if (IS_ERR(inode))
> > + return ERR_PTR(-ENOMEM);
> > + if (!(inode->i_state & I_NEW))
> > + return inode;
>
> Don't you have to unlock_new_inode(inode) before returning?
In the first case, no because an OOM error was returned
Roel Kluin [EMAIL PROTECTED] wrote:
+ if (IS_ERR(inode))
+ return ERR_PTR(-ENOMEM);
+ if (!(inode-i_state I_NEW))
+ return inode;
Don't you have to unlock_new_inode(inode) before returning?
In the first case, no because an OOM error was returned rather than an
It is very well possible that I misunderstand the locking order here,
but FWIW:
David Howells wrote:
> diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
> index f346eb1..76798c9 100644
> --- a/fs/bfs/inode.c
> +++ b/fs/bfs/inode.c
> @@ -32,25 +32,29 @@ MODULE_LICENSE("GPL");
>
> void
Stop the BFS filesystem from using iget() and read_inode(). Replace
bfs_read_inode() with bfs_iget(), and call that instead of iget().
bfs_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.
bfs_fill_super() returns any error
Stop the BFS filesystem from using iget() and read_inode(). Replace
bfs_read_inode() with bfs_iget(), and call that instead of iget().
bfs_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.
bfs_fill_super() returns any error
It is very well possible that I misunderstand the locking order here,
but FWIW:
David Howells wrote:
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
index f346eb1..76798c9 100644
--- a/fs/bfs/inode.c
+++ b/fs/bfs/inode.c
@@ -32,25 +32,29 @@ MODULE_LICENSE(GPL);
void dump_imap(const char
6 matches
Mail list logo