Re: [PATCH 03/41] VFS: Make lookup_hash() return a struct path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In message <1256152779-10054-4-git-send-email-vaurora@xxxxxxxxxx>, Valerie Aurora writes:
> From: Jan Blunck <jblunck@xxxxxxx>
> 
> 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux