ceph: always initialize the dentry in open_root_dentry()
authorAlex Elder <elder@dreamhost.com>
Wed, 4 Jan 2012 22:30:15 +0000 (16:30 -0600)
committerSage Weil <sage@newdream.net>
Thu, 12 Jan 2012 00:28:25 +0000 (16:28 -0800)
commitd46cfba5363a163851dc768f717f34185527a472
tree18aaa9ab40b91b618ab206670de7a965f17589d1
parent56e925b677c5293e5aac73dac09e93b23259f907
ceph: always initialize the dentry in open_root_dentry()

When open_root_dentry() gets a dentry via d_obtain_alias() it does
not get initialized.  If the dentry obtained came from the cache,
this is OK.  But if not, the result is an improperly initialized
dentry.

To fix this, call ceph_init_dentry() regardless of which path
produced the dentry.  That function returns immediately for a dentry
that is already initialized, it is safe to use either way.

(Credit to Sage, who suggested this fix.)

Signed-off-by: Alex Elder <aelder@sgi.com>
fs/ceph/super.c