lkml.org 
[lkml]   [2009]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 03/41] VFS: Make lookup_hash() return a struct path
In message <1256152779-10054-4-git-send-email-vaurora@redhat.com>, Valerie Aurora writes:
> From: Jan Blunck <jblunck@suse.de>
>
> This patch changes lookup_hash() into returning a struct path.

Actually, lookup_hash now also takes a qstr.

This is a somewhat involved patch. I think more documentation is needed to
list all the places it touches and changes, b/c now struct path has to
propagate in various other places. (In general, passing struct path instead
of struct dentry is going in the right direction: eventually we could get rid
of lookup_one_len.)

> @@ -1219,14 +1219,22 @@ out:
> * needs parent already locked. Doesn't follow mounts.
> * SMP-safe.
> */
> -static struct dentry *lookup_hash(struct nameidata *nd)
> +static int lookup_hash(struct nameidata *nd, struct qstr *name,
> + struct path *path)
> {

I suggest you document above this function what the @name and @path are for,
who is supposed to allocate and free them, caller/callee's responsibilities,
side effects (if any), new return status upon success/failure, etc.

>
> err = inode_permission(nd->path.dentry->d_inode, MAY_EXEC);
> if (err)
> - return ERR_PTR(err);
> - return __lookup_hash(&nd->last, nd->path.dentry, nd);
> + return err;

At least initially, while all this code is being developed, it might also be
a good idea to add

BUG_ON(!name);
BUG_ON(!path);

here and possibly in other places which are now taking new pointers.

Erez.


\
 
 \ /
  Last update: 2009-11-30 03:05    [W:0.243 / U:0.240 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site