22
22
23
23
static inline int simple_positive (struct dentry * dentry )
24
24
{
25
- return dentry -> d_inode && !d_unhashed (dentry );
25
+ return d_really_is_positive ( dentry ) && !d_unhashed (dentry );
26
26
}
27
27
28
28
int simple_getattr (struct vfsmount * mnt , struct dentry * dentry ,
29
29
struct kstat * stat )
30
30
{
31
- struct inode * inode = dentry -> d_inode ;
31
+ struct inode * inode = d_inode ( dentry ) ;
32
32
generic_fillattr (inode , stat );
33
33
stat -> blocks = inode -> i_mapping -> nrpages << (PAGE_CACHE_SHIFT - 9 );
34
34
return 0 ;
@@ -94,15 +94,15 @@ EXPORT_SYMBOL(dcache_dir_close);
94
94
loff_t dcache_dir_lseek (struct file * file , loff_t offset , int whence )
95
95
{
96
96
struct dentry * dentry = file -> f_path .dentry ;
97
- mutex_lock (& dentry -> d_inode -> i_mutex );
97
+ mutex_lock (& d_inode ( dentry ) -> i_mutex );
98
98
switch (whence ) {
99
99
case 1 :
100
100
offset += file -> f_pos ;
101
101
case 0 :
102
102
if (offset >= 0 )
103
103
break ;
104
104
default :
105
- mutex_unlock (& dentry -> d_inode -> i_mutex );
105
+ mutex_unlock (& d_inode ( dentry ) -> i_mutex );
106
106
return - EINVAL ;
107
107
}
108
108
if (offset != file -> f_pos ) {
@@ -129,7 +129,7 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int whence)
129
129
spin_unlock (& dentry -> d_lock );
130
130
}
131
131
}
132
- mutex_unlock (& dentry -> d_inode -> i_mutex );
132
+ mutex_unlock (& d_inode ( dentry ) -> i_mutex );
133
133
return offset ;
134
134
}
135
135
EXPORT_SYMBOL (dcache_dir_lseek );
@@ -169,7 +169,7 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
169
169
spin_unlock (& next -> d_lock );
170
170
spin_unlock (& dentry -> d_lock );
171
171
if (!dir_emit (ctx , next -> d_name .name , next -> d_name .len ,
172
- next -> d_inode -> i_ino , dt_type (next -> d_inode )))
172
+ d_inode ( next ) -> i_ino , dt_type (d_inode ( next ) )))
173
173
return 0 ;
174
174
spin_lock (& dentry -> d_lock );
175
175
spin_lock_nested (& next -> d_lock , DENTRY_D_LOCK_NESTED );
@@ -270,7 +270,7 @@ EXPORT_SYMBOL(simple_open);
270
270
271
271
int simple_link (struct dentry * old_dentry , struct inode * dir , struct dentry * dentry )
272
272
{
273
- struct inode * inode = old_dentry -> d_inode ;
273
+ struct inode * inode = d_inode ( old_dentry ) ;
274
274
275
275
inode -> i_ctime = dir -> i_ctime = dir -> i_mtime = CURRENT_TIME ;
276
276
inc_nlink (inode );
@@ -304,7 +304,7 @@ EXPORT_SYMBOL(simple_empty);
304
304
305
305
int simple_unlink (struct inode * dir , struct dentry * dentry )
306
306
{
307
- struct inode * inode = dentry -> d_inode ;
307
+ struct inode * inode = d_inode ( dentry ) ;
308
308
309
309
inode -> i_ctime = dir -> i_ctime = dir -> i_mtime = CURRENT_TIME ;
310
310
drop_nlink (inode );
@@ -318,7 +318,7 @@ int simple_rmdir(struct inode *dir, struct dentry *dentry)
318
318
if (!simple_empty (dentry ))
319
319
return - ENOTEMPTY ;
320
320
321
- drop_nlink (dentry -> d_inode );
321
+ drop_nlink (d_inode ( dentry ) );
322
322
simple_unlink (dir , dentry );
323
323
drop_nlink (dir );
324
324
return 0 ;
@@ -328,16 +328,16 @@ EXPORT_SYMBOL(simple_rmdir);
328
328
int simple_rename (struct inode * old_dir , struct dentry * old_dentry ,
329
329
struct inode * new_dir , struct dentry * new_dentry )
330
330
{
331
- struct inode * inode = old_dentry -> d_inode ;
331
+ struct inode * inode = d_inode ( old_dentry ) ;
332
332
int they_are_dirs = d_is_dir (old_dentry );
333
333
334
334
if (!simple_empty (new_dentry ))
335
335
return - ENOTEMPTY ;
336
336
337
- if (new_dentry -> d_inode ) {
337
+ if (d_really_is_positive ( new_dentry ) ) {
338
338
simple_unlink (new_dir , new_dentry );
339
339
if (they_are_dirs ) {
340
- drop_nlink (new_dentry -> d_inode );
340
+ drop_nlink (d_inode ( new_dentry ) );
341
341
drop_nlink (old_dir );
342
342
}
343
343
} else if (they_are_dirs ) {
@@ -368,7 +368,7 @@ EXPORT_SYMBOL(simple_rename);
368
368
*/
369
369
int simple_setattr (struct dentry * dentry , struct iattr * iattr )
370
370
{
371
- struct inode * inode = dentry -> d_inode ;
371
+ struct inode * inode = d_inode ( dentry ) ;
372
372
int error ;
373
373
374
374
error = inode_change_ok (inode , iattr );
0 commit comments