diff options
author | David Howells <dhowells@redhat.com> | 2015-03-17 18:25:59 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-04-15 15:06:57 -0400 |
commit | 2b0143b5c986be1ce8408b3aadc4709e0a94429d (patch) | |
tree | 98b1dee70f3d5d9ac9309f4638e41864ddcd0952 /fs/ecryptfs | |
parent | ce0b16ddf18df35026164fda4a642ef10c01f442 (diff) |
VFS: normal filesystems (and lustre): d_inode() annotations
that's the bulk of filesystem drivers dealing with inodes of their own
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ecryptfs')
-rw-r--r-- | fs/ecryptfs/crypto.c | 4 | ||||
-rw-r--r-- | fs/ecryptfs/dentry.c | 6 | ||||
-rw-r--r-- | fs/ecryptfs/file.c | 2 | ||||
-rw-r--r-- | fs/ecryptfs/inode.c | 164 | ||||
-rw-r--r-- | fs/ecryptfs/kthread.c | 2 | ||||
-rw-r--r-- | fs/ecryptfs/main.c | 6 | ||||
-rw-r--r-- | fs/ecryptfs/mmap.c | 2 |
7 files changed, 93 insertions, 93 deletions
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c index 719e1ce1c609..97315f2f6816 100644 --- a/fs/ecryptfs/crypto.c +++ b/fs/ecryptfs/crypto.c | |||
@@ -1326,7 +1326,7 @@ static int ecryptfs_read_headers_virt(char *page_virt, | |||
1326 | if (rc) | 1326 | if (rc) |
1327 | goto out; | 1327 | goto out; |
1328 | if (!(crypt_stat->flags & ECRYPTFS_I_SIZE_INITIALIZED)) | 1328 | if (!(crypt_stat->flags & ECRYPTFS_I_SIZE_INITIALIZED)) |
1329 | ecryptfs_i_size_init(page_virt, ecryptfs_dentry->d_inode); | 1329 | ecryptfs_i_size_init(page_virt, d_inode(ecryptfs_dentry)); |
1330 | offset += MAGIC_ECRYPTFS_MARKER_SIZE_BYTES; | 1330 | offset += MAGIC_ECRYPTFS_MARKER_SIZE_BYTES; |
1331 | rc = ecryptfs_process_flags(crypt_stat, (page_virt + offset), | 1331 | rc = ecryptfs_process_flags(crypt_stat, (page_virt + offset), |
1332 | &bytes_read); | 1332 | &bytes_read); |
@@ -1425,7 +1425,7 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry) | |||
1425 | { | 1425 | { |
1426 | int rc; | 1426 | int rc; |
1427 | char *page_virt; | 1427 | char *page_virt; |
1428 | struct inode *ecryptfs_inode = ecryptfs_dentry->d_inode; | 1428 | struct inode *ecryptfs_inode = d_inode(ecryptfs_dentry); |
1429 | struct ecryptfs_crypt_stat *crypt_stat = | 1429 | struct ecryptfs_crypt_stat *crypt_stat = |
1430 | &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat; | 1430 | &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat; |
1431 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat = | 1431 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat = |
diff --git a/fs/ecryptfs/dentry.c b/fs/ecryptfs/dentry.c index 4000f6b3a750..8db0b464483f 100644 --- a/fs/ecryptfs/dentry.c +++ b/fs/ecryptfs/dentry.c | |||
@@ -54,11 +54,11 @@ static int ecryptfs_d_revalidate(struct dentry *dentry, unsigned int flags) | |||
54 | return -ECHILD; | 54 | return -ECHILD; |
55 | 55 | ||
56 | rc = lower_dentry->d_op->d_revalidate(lower_dentry, flags); | 56 | rc = lower_dentry->d_op->d_revalidate(lower_dentry, flags); |
57 | if (dentry->d_inode) { | 57 | if (d_really_is_positive(dentry)) { |
58 | struct inode *lower_inode = | 58 | struct inode *lower_inode = |
59 | ecryptfs_inode_to_lower(dentry->d_inode); | 59 | ecryptfs_inode_to_lower(d_inode(dentry)); |
60 | 60 | ||
61 | fsstack_copy_attr_all(dentry->d_inode, lower_inode); | 61 | fsstack_copy_attr_all(d_inode(dentry), lower_inode); |
62 | } | 62 | } |
63 | return rc; | 63 | return rc; |
64 | } | 64 | } |
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c index a65786e26b05..72afcc629d7b 100644 --- a/fs/ecryptfs/file.c +++ b/fs/ecryptfs/file.c | |||
@@ -130,7 +130,7 @@ struct kmem_cache *ecryptfs_file_info_cache; | |||
130 | 130 | ||
131 | static int read_or_initialize_metadata(struct dentry *dentry) | 131 | static int read_or_initialize_metadata(struct dentry *dentry) |
132 | { | 132 | { |
133 | struct inode *inode = dentry->d_inode; | 133 | struct inode *inode = d_inode(dentry); |
134 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat; | 134 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat; |
135 | struct ecryptfs_crypt_stat *crypt_stat; | 135 | struct ecryptfs_crypt_stat *crypt_stat; |
136 | int rc; | 136 | int rc; |
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index b08b5187f662..fc850b55db67 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
@@ -41,13 +41,13 @@ static struct dentry *lock_parent(struct dentry *dentry) | |||
41 | struct dentry *dir; | 41 | struct dentry *dir; |
42 | 42 | ||
43 | dir = dget_parent(dentry); | 43 | dir = dget_parent(dentry); |
44 | mutex_lock_nested(&(dir->d_inode->i_mutex), I_MUTEX_PARENT); | 44 | mutex_lock_nested(&(d_inode(dir)->i_mutex), I_MUTEX_PARENT); |
45 | return dir; | 45 | return dir; |
46 | } | 46 | } |
47 | 47 | ||
48 | static void unlock_dir(struct dentry *dir) | 48 | static void unlock_dir(struct dentry *dir) |
49 | { | 49 | { |
50 | mutex_unlock(&dir->d_inode->i_mutex); | 50 | mutex_unlock(&d_inode(dir)->i_mutex); |
51 | dput(dir); | 51 | dput(dir); |
52 | } | 52 | } |
53 | 53 | ||
@@ -131,7 +131,7 @@ struct inode *ecryptfs_get_inode(struct inode *lower_inode, | |||
131 | static int ecryptfs_interpose(struct dentry *lower_dentry, | 131 | static int ecryptfs_interpose(struct dentry *lower_dentry, |
132 | struct dentry *dentry, struct super_block *sb) | 132 | struct dentry *dentry, struct super_block *sb) |
133 | { | 133 | { |
134 | struct inode *inode = ecryptfs_get_inode(lower_dentry->d_inode, sb); | 134 | struct inode *inode = ecryptfs_get_inode(d_inode(lower_dentry), sb); |
135 | 135 | ||
136 | if (IS_ERR(inode)) | 136 | if (IS_ERR(inode)) |
137 | return PTR_ERR(inode); | 137 | return PTR_ERR(inode); |
@@ -189,21 +189,21 @@ ecryptfs_do_create(struct inode *directory_inode, | |||
189 | 189 | ||
190 | lower_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry); | 190 | lower_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry); |
191 | lower_dir_dentry = lock_parent(lower_dentry); | 191 | lower_dir_dentry = lock_parent(lower_dentry); |
192 | rc = vfs_create(lower_dir_dentry->d_inode, lower_dentry, mode, true); | 192 | rc = vfs_create(d_inode(lower_dir_dentry), lower_dentry, mode, true); |
193 | if (rc) { | 193 | if (rc) { |
194 | printk(KERN_ERR "%s: Failure to create dentry in lower fs; " | 194 | printk(KERN_ERR "%s: Failure to create dentry in lower fs; " |
195 | "rc = [%d]\n", __func__, rc); | 195 | "rc = [%d]\n", __func__, rc); |
196 | inode = ERR_PTR(rc); | 196 | inode = ERR_PTR(rc); |
197 | goto out_lock; | 197 | goto out_lock; |
198 | } | 198 | } |
199 | inode = __ecryptfs_get_inode(lower_dentry->d_inode, | 199 | inode = __ecryptfs_get_inode(d_inode(lower_dentry), |
200 | directory_inode->i_sb); | 200 | directory_inode->i_sb); |
201 | if (IS_ERR(inode)) { | 201 | if (IS_ERR(inode)) { |
202 | vfs_unlink(lower_dir_dentry->d_inode, lower_dentry, NULL); | 202 | vfs_unlink(d_inode(lower_dir_dentry), lower_dentry, NULL); |
203 | goto out_lock; | 203 | goto out_lock; |
204 | } | 204 | } |
205 | fsstack_copy_attr_times(directory_inode, lower_dir_dentry->d_inode); | 205 | fsstack_copy_attr_times(directory_inode, d_inode(lower_dir_dentry)); |
206 | fsstack_copy_inode_size(directory_inode, lower_dir_dentry->d_inode); | 206 | fsstack_copy_inode_size(directory_inode, d_inode(lower_dir_dentry)); |
207 | out_lock: | 207 | out_lock: |
208 | unlock_dir(lower_dir_dentry); | 208 | unlock_dir(lower_dir_dentry); |
209 | return inode; | 209 | return inode; |
@@ -332,7 +332,7 @@ static int ecryptfs_lookup_interpose(struct dentry *dentry, | |||
332 | struct dentry *lower_dentry, | 332 | struct dentry *lower_dentry, |
333 | struct inode *dir_inode) | 333 | struct inode *dir_inode) |
334 | { | 334 | { |
335 | struct inode *inode, *lower_inode = lower_dentry->d_inode; | 335 | struct inode *inode, *lower_inode = d_inode(lower_dentry); |
336 | struct ecryptfs_dentry_info *dentry_info; | 336 | struct ecryptfs_dentry_info *dentry_info; |
337 | struct vfsmount *lower_mnt; | 337 | struct vfsmount *lower_mnt; |
338 | int rc = 0; | 338 | int rc = 0; |
@@ -347,14 +347,14 @@ static int ecryptfs_lookup_interpose(struct dentry *dentry, | |||
347 | } | 347 | } |
348 | 348 | ||
349 | lower_mnt = mntget(ecryptfs_dentry_to_lower_mnt(dentry->d_parent)); | 349 | lower_mnt = mntget(ecryptfs_dentry_to_lower_mnt(dentry->d_parent)); |
350 | fsstack_copy_attr_atime(dir_inode, lower_dentry->d_parent->d_inode); | 350 | fsstack_copy_attr_atime(dir_inode, d_inode(lower_dentry->d_parent)); |
351 | BUG_ON(!d_count(lower_dentry)); | 351 | BUG_ON(!d_count(lower_dentry)); |
352 | 352 | ||
353 | ecryptfs_set_dentry_private(dentry, dentry_info); | 353 | ecryptfs_set_dentry_private(dentry, dentry_info); |
354 | dentry_info->lower_path.mnt = lower_mnt; | 354 | dentry_info->lower_path.mnt = lower_mnt; |
355 | dentry_info->lower_path.dentry = lower_dentry; | 355 | dentry_info->lower_path.dentry = lower_dentry; |
356 | 356 | ||
357 | if (!lower_dentry->d_inode) { | 357 | if (d_really_is_negative(lower_dentry)) { |
358 | /* We want to add because we couldn't find in lower */ | 358 | /* We want to add because we couldn't find in lower */ |
359 | d_add(dentry, NULL); | 359 | d_add(dentry, NULL); |
360 | return 0; | 360 | return 0; |
@@ -400,11 +400,11 @@ static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode, | |||
400 | int rc = 0; | 400 | int rc = 0; |
401 | 401 | ||
402 | lower_dir_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry->d_parent); | 402 | lower_dir_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry->d_parent); |
403 | mutex_lock(&lower_dir_dentry->d_inode->i_mutex); | 403 | mutex_lock(&d_inode(lower_dir_dentry)->i_mutex); |
404 | lower_dentry = lookup_one_len(ecryptfs_dentry->d_name.name, | 404 | lower_dentry = lookup_one_len(ecryptfs_dentry->d_name.name, |
405 | lower_dir_dentry, | 405 | lower_dir_dentry, |
406 | ecryptfs_dentry->d_name.len); | 406 | ecryptfs_dentry->d_name.len); |
407 | mutex_unlock(&lower_dir_dentry->d_inode->i_mutex); | 407 | mutex_unlock(&d_inode(lower_dir_dentry)->i_mutex); |
408 | if (IS_ERR(lower_dentry)) { | 408 | if (IS_ERR(lower_dentry)) { |
409 | rc = PTR_ERR(lower_dentry); | 409 | rc = PTR_ERR(lower_dentry); |
410 | ecryptfs_printk(KERN_DEBUG, "%s: lookup_one_len() returned " | 410 | ecryptfs_printk(KERN_DEBUG, "%s: lookup_one_len() returned " |
@@ -412,7 +412,7 @@ static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode, | |||
412 | ecryptfs_dentry); | 412 | ecryptfs_dentry); |
413 | goto out; | 413 | goto out; |
414 | } | 414 | } |
415 | if (lower_dentry->d_inode) | 415 | if (d_really_is_positive(lower_dentry)) |
416 | goto interpose; | 416 | goto interpose; |
417 | mount_crypt_stat = &ecryptfs_superblock_to_private( | 417 | mount_crypt_stat = &ecryptfs_superblock_to_private( |
418 | ecryptfs_dentry->d_sb)->mount_crypt_stat; | 418 | ecryptfs_dentry->d_sb)->mount_crypt_stat; |
@@ -429,11 +429,11 @@ static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode, | |||
429 | "filename; rc = [%d]\n", __func__, rc); | 429 | "filename; rc = [%d]\n", __func__, rc); |
430 | goto out; | 430 | goto out; |
431 | } | 431 | } |
432 | mutex_lock(&lower_dir_dentry->d_inode->i_mutex); | 432 | mutex_lock(&d_inode(lower_dir_dentry)->i_mutex); |
433 | lower_dentry = lookup_one_len(encrypted_and_encoded_name, | 433 | lower_dentry = lookup_one_len(encrypted_and_encoded_name, |
434 | lower_dir_dentry, | 434 | lower_dir_dentry, |
435 | encrypted_and_encoded_name_size); | 435 | encrypted_and_encoded_name_size); |
436 | mutex_unlock(&lower_dir_dentry->d_inode->i_mutex); | 436 | mutex_unlock(&d_inode(lower_dir_dentry)->i_mutex); |
437 | if (IS_ERR(lower_dentry)) { | 437 | if (IS_ERR(lower_dentry)) { |
438 | rc = PTR_ERR(lower_dentry); | 438 | rc = PTR_ERR(lower_dentry); |
439 | ecryptfs_printk(KERN_DEBUG, "%s: lookup_one_len() returned " | 439 | ecryptfs_printk(KERN_DEBUG, "%s: lookup_one_len() returned " |
@@ -458,24 +458,24 @@ static int ecryptfs_link(struct dentry *old_dentry, struct inode *dir, | |||
458 | u64 file_size_save; | 458 | u64 file_size_save; |
459 | int rc; | 459 | int rc; |
460 | 460 | ||
461 | file_size_save = i_size_read(old_dentry->d_inode); | 461 | file_size_save = i_size_read(d_inode(old_dentry)); |
462 | lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); | 462 | lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); |
463 | lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); | 463 | lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); |
464 | dget(lower_old_dentry); | 464 | dget(lower_old_dentry); |
465 | dget(lower_new_dentry); | 465 | dget(lower_new_dentry); |
466 | lower_dir_dentry = lock_parent(lower_new_dentry); | 466 | lower_dir_dentry = lock_parent(lower_new_dentry); |
467 | rc = vfs_link(lower_old_dentry, lower_dir_dentry->d_inode, | 467 | rc = vfs_link(lower_old_dentry, d_inode(lower_dir_dentry), |
468 | lower_new_dentry, NULL); | 468 | lower_new_dentry, NULL); |
469 | if (rc || !lower_new_dentry->d_inode) | 469 | if (rc || d_really_is_negative(lower_new_dentry)) |
470 | goto out_lock; | 470 | goto out_lock; |
471 | rc = ecryptfs_interpose(lower_new_dentry, new_dentry, dir->i_sb); | 471 | rc = ecryptfs_interpose(lower_new_dentry, new_dentry, dir->i_sb); |
472 | if (rc) | 472 | if (rc) |
473 | goto out_lock; | 473 | goto out_lock; |
474 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 474 | fsstack_copy_attr_times(dir, d_inode(lower_dir_dentry)); |
475 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); | 475 | fsstack_copy_inode_size(dir, d_inode(lower_dir_dentry)); |
476 | set_nlink(old_dentry->d_inode, | 476 | set_nlink(d_inode(old_dentry), |
477 | ecryptfs_inode_to_lower(old_dentry->d_inode)->i_nlink); | 477 | ecryptfs_inode_to_lower(d_inode(old_dentry))->i_nlink); |
478 | i_size_write(new_dentry->d_inode, file_size_save); | 478 | i_size_write(d_inode(new_dentry), file_size_save); |
479 | out_lock: | 479 | out_lock: |
480 | unlock_dir(lower_dir_dentry); | 480 | unlock_dir(lower_dir_dentry); |
481 | dput(lower_new_dentry); | 481 | dput(lower_new_dentry); |
@@ -485,7 +485,7 @@ out_lock: | |||
485 | 485 | ||
486 | static int ecryptfs_unlink(struct inode *dir, struct dentry *dentry) | 486 | static int ecryptfs_unlink(struct inode *dir, struct dentry *dentry) |
487 | { | 487 | { |
488 | return ecryptfs_do_unlink(dir, dentry, dentry->d_inode); | 488 | return ecryptfs_do_unlink(dir, dentry, d_inode(dentry)); |
489 | } | 489 | } |
490 | 490 | ||
491 | static int ecryptfs_symlink(struct inode *dir, struct dentry *dentry, | 491 | static int ecryptfs_symlink(struct inode *dir, struct dentry *dentry, |
@@ -510,20 +510,20 @@ static int ecryptfs_symlink(struct inode *dir, struct dentry *dentry, | |||
510 | strlen(symname)); | 510 | strlen(symname)); |
511 | if (rc) | 511 | if (rc) |
512 | goto out_lock; | 512 | goto out_lock; |
513 | rc = vfs_symlink(lower_dir_dentry->d_inode, lower_dentry, | 513 | rc = vfs_symlink(d_inode(lower_dir_dentry), lower_dentry, |
514 | encoded_symname); | 514 | encoded_symname); |
515 | kfree(encoded_symname); | 515 | kfree(encoded_symname); |
516 | if (rc || !lower_dentry->d_inode) | 516 | if (rc || d_really_is_negative(lower_dentry)) |
517 | goto out_lock; | 517 | goto out_lock; |
518 | rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); | 518 | rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); |
519 | if (rc) | 519 | if (rc) |
520 | goto out_lock; | 520 | goto out_lock; |
521 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 521 | fsstack_copy_attr_times(dir, d_inode(lower_dir_dentry)); |
522 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); | 522 | fsstack_copy_inode_size(dir, d_inode(lower_dir_dentry)); |
523 | out_lock: | 523 | out_lock: |
524 | unlock_dir(lower_dir_dentry); | 524 | unlock_dir(lower_dir_dentry); |
525 | dput(lower_dentry); | 525 | dput(lower_dentry); |
526 | if (!dentry->d_inode) | 526 | if (d_really_is_negative(dentry)) |
527 | d_drop(dentry); | 527 | d_drop(dentry); |
528 | return rc; | 528 | return rc; |
529 | } | 529 | } |
@@ -536,18 +536,18 @@ static int ecryptfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode | |||
536 | 536 | ||
537 | lower_dentry = ecryptfs_dentry_to_lower(dentry); | 537 | lower_dentry = ecryptfs_dentry_to_lower(dentry); |
538 | lower_dir_dentry = lock_parent(lower_dentry); | 538 | lower_dir_dentry = lock_parent(lower_dentry); |
539 | rc = vfs_mkdir(lower_dir_dentry->d_inode, lower_dentry, mode); | 539 | rc = vfs_mkdir(d_inode(lower_dir_dentry), lower_dentry, mode); |
540 | if (rc || !lower_dentry->d_inode) | 540 | if (rc || d_really_is_negative(lower_dentry)) |
541 | goto out; | 541 | goto out; |
542 | rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); | 542 | rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); |
543 | if (rc) | 543 | if (rc) |
544 | goto out; | 544 | goto out; |
545 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 545 | fsstack_copy_attr_times(dir, d_inode(lower_dir_dentry)); |
546 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); | 546 | fsstack_copy_inode_size(dir, d_inode(lower_dir_dentry)); |
547 | set_nlink(dir, lower_dir_dentry->d_inode->i_nlink); | 547 | set_nlink(dir, d_inode(lower_dir_dentry)->i_nlink); |
548 | out: | 548 | out: |
549 | unlock_dir(lower_dir_dentry); | 549 | unlock_dir(lower_dir_dentry); |
550 | if (!dentry->d_inode) | 550 | if (d_really_is_negative(dentry)) |
551 | d_drop(dentry); | 551 | d_drop(dentry); |
552 | return rc; | 552 | return rc; |
553 | } | 553 | } |
@@ -562,12 +562,12 @@ static int ecryptfs_rmdir(struct inode *dir, struct dentry *dentry) | |||
562 | dget(dentry); | 562 | dget(dentry); |
563 | lower_dir_dentry = lock_parent(lower_dentry); | 563 | lower_dir_dentry = lock_parent(lower_dentry); |
564 | dget(lower_dentry); | 564 | dget(lower_dentry); |
565 | rc = vfs_rmdir(lower_dir_dentry->d_inode, lower_dentry); | 565 | rc = vfs_rmdir(d_inode(lower_dir_dentry), lower_dentry); |
566 | dput(lower_dentry); | 566 | dput(lower_dentry); |
567 | if (!rc && dentry->d_inode) | 567 | if (!rc && d_really_is_positive(dentry)) |
568 | clear_nlink(dentry->d_inode); | 568 | clear_nlink(d_inode(dentry)); |
569 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 569 | fsstack_copy_attr_times(dir, d_inode(lower_dir_dentry)); |
570 | set_nlink(dir, lower_dir_dentry->d_inode->i_nlink); | 570 | set_nlink(dir, d_inode(lower_dir_dentry)->i_nlink); |
571 | unlock_dir(lower_dir_dentry); | 571 | unlock_dir(lower_dir_dentry); |
572 | if (!rc) | 572 | if (!rc) |
573 | d_drop(dentry); | 573 | d_drop(dentry); |
@@ -584,17 +584,17 @@ ecryptfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev | |||
584 | 584 | ||
585 | lower_dentry = ecryptfs_dentry_to_lower(dentry); | 585 | lower_dentry = ecryptfs_dentry_to_lower(dentry); |
586 | lower_dir_dentry = lock_parent(lower_dentry); | 586 | lower_dir_dentry = lock_parent(lower_dentry); |
587 | rc = vfs_mknod(lower_dir_dentry->d_inode, lower_dentry, mode, dev); | 587 | rc = vfs_mknod(d_inode(lower_dir_dentry), lower_dentry, mode, dev); |
588 | if (rc || !lower_dentry->d_inode) | 588 | if (rc || d_really_is_negative(lower_dentry)) |
589 | goto out; | 589 | goto out; |
590 | rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); | 590 | rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); |
591 | if (rc) | 591 | if (rc) |
592 | goto out; | 592 | goto out; |
593 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 593 | fsstack_copy_attr_times(dir, d_inode(lower_dir_dentry)); |
594 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); | 594 | fsstack_copy_inode_size(dir, d_inode(lower_dir_dentry)); |
595 | out: | 595 | out: |
596 | unlock_dir(lower_dir_dentry); | 596 | unlock_dir(lower_dir_dentry); |
597 | if (!dentry->d_inode) | 597 | if (d_really_is_negative(dentry)) |
598 | d_drop(dentry); | 598 | d_drop(dentry); |
599 | return rc; | 599 | return rc; |
600 | } | 600 | } |
@@ -617,7 +617,7 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
617 | dget(lower_new_dentry); | 617 | dget(lower_new_dentry); |
618 | lower_old_dir_dentry = dget_parent(lower_old_dentry); | 618 | lower_old_dir_dentry = dget_parent(lower_old_dentry); |
619 | lower_new_dir_dentry = dget_parent(lower_new_dentry); | 619 | lower_new_dir_dentry = dget_parent(lower_new_dentry); |
620 | target_inode = new_dentry->d_inode; | 620 | target_inode = d_inode(new_dentry); |
621 | trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); | 621 | trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); |
622 | /* source should not be ancestor of target */ | 622 | /* source should not be ancestor of target */ |
623 | if (trap == lower_old_dentry) { | 623 | if (trap == lower_old_dentry) { |
@@ -629,17 +629,17 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
629 | rc = -ENOTEMPTY; | 629 | rc = -ENOTEMPTY; |
630 | goto out_lock; | 630 | goto out_lock; |
631 | } | 631 | } |
632 | rc = vfs_rename(lower_old_dir_dentry->d_inode, lower_old_dentry, | 632 | rc = vfs_rename(d_inode(lower_old_dir_dentry), lower_old_dentry, |
633 | lower_new_dir_dentry->d_inode, lower_new_dentry, | 633 | d_inode(lower_new_dir_dentry), lower_new_dentry, |
634 | NULL, 0); | 634 | NULL, 0); |
635 | if (rc) | 635 | if (rc) |
636 | goto out_lock; | 636 | goto out_lock; |
637 | if (target_inode) | 637 | if (target_inode) |
638 | fsstack_copy_attr_all(target_inode, | 638 | fsstack_copy_attr_all(target_inode, |
639 | ecryptfs_inode_to_lower(target_inode)); | 639 | ecryptfs_inode_to_lower(target_inode)); |
640 | fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode); | 640 | fsstack_copy_attr_all(new_dir, d_inode(lower_new_dir_dentry)); |
641 | if (new_dir != old_dir) | 641 | if (new_dir != old_dir) |
642 | fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode); | 642 | fsstack_copy_attr_all(old_dir, d_inode(lower_old_dir_dentry)); |
643 | out_lock: | 643 | out_lock: |
644 | unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry); | 644 | unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry); |
645 | dput(lower_new_dir_dentry); | 645 | dput(lower_new_dir_dentry); |
@@ -662,7 +662,7 @@ static char *ecryptfs_readlink_lower(struct dentry *dentry, size_t *bufsiz) | |||
662 | return ERR_PTR(-ENOMEM); | 662 | return ERR_PTR(-ENOMEM); |
663 | old_fs = get_fs(); | 663 | old_fs = get_fs(); |
664 | set_fs(get_ds()); | 664 | set_fs(get_ds()); |
665 | rc = lower_dentry->d_inode->i_op->readlink(lower_dentry, | 665 | rc = d_inode(lower_dentry)->i_op->readlink(lower_dentry, |
666 | (char __user *)lower_buf, | 666 | (char __user *)lower_buf, |
667 | PATH_MAX); | 667 | PATH_MAX); |
668 | set_fs(old_fs); | 668 | set_fs(old_fs); |
@@ -681,8 +681,8 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd) | |||
681 | char *buf = ecryptfs_readlink_lower(dentry, &len); | 681 | char *buf = ecryptfs_readlink_lower(dentry, &len); |
682 | if (IS_ERR(buf)) | 682 | if (IS_ERR(buf)) |
683 | goto out; | 683 | goto out; |
684 | fsstack_copy_attr_atime(dentry->d_inode, | 684 | fsstack_copy_attr_atime(d_inode(dentry), |
685 | ecryptfs_dentry_to_lower(dentry)->d_inode); | 685 | d_inode(ecryptfs_dentry_to_lower(dentry))); |
686 | buf[len] = '\0'; | 686 | buf[len] = '\0'; |
687 | out: | 687 | out: |
688 | nd_set_link(nd, buf); | 688 | nd_set_link(nd, buf); |
@@ -738,7 +738,7 @@ static int truncate_upper(struct dentry *dentry, struct iattr *ia, | |||
738 | struct iattr *lower_ia) | 738 | struct iattr *lower_ia) |
739 | { | 739 | { |
740 | int rc = 0; | 740 | int rc = 0; |
741 | struct inode *inode = dentry->d_inode; | 741 | struct inode *inode = d_inode(dentry); |
742 | struct ecryptfs_crypt_stat *crypt_stat; | 742 | struct ecryptfs_crypt_stat *crypt_stat; |
743 | loff_t i_size = i_size_read(inode); | 743 | loff_t i_size = i_size_read(inode); |
744 | loff_t lower_size_before_truncate; | 744 | loff_t lower_size_before_truncate; |
@@ -751,7 +751,7 @@ static int truncate_upper(struct dentry *dentry, struct iattr *ia, | |||
751 | rc = ecryptfs_get_lower_file(dentry, inode); | 751 | rc = ecryptfs_get_lower_file(dentry, inode); |
752 | if (rc) | 752 | if (rc) |
753 | return rc; | 753 | return rc; |
754 | crypt_stat = &ecryptfs_inode_to_private(dentry->d_inode)->crypt_stat; | 754 | crypt_stat = &ecryptfs_inode_to_private(d_inode(dentry))->crypt_stat; |
755 | /* Switch on growing or shrinking file */ | 755 | /* Switch on growing or shrinking file */ |
756 | if (ia->ia_size > i_size) { | 756 | if (ia->ia_size > i_size) { |
757 | char zero[] = { 0x00 }; | 757 | char zero[] = { 0x00 }; |
@@ -858,7 +858,7 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | |||
858 | struct iattr lower_ia = { .ia_valid = 0 }; | 858 | struct iattr lower_ia = { .ia_valid = 0 }; |
859 | int rc; | 859 | int rc; |
860 | 860 | ||
861 | rc = ecryptfs_inode_newsize_ok(dentry->d_inode, new_length); | 861 | rc = ecryptfs_inode_newsize_ok(d_inode(dentry), new_length); |
862 | if (rc) | 862 | if (rc) |
863 | return rc; | 863 | return rc; |
864 | 864 | ||
@@ -866,9 +866,9 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | |||
866 | if (!rc && lower_ia.ia_valid & ATTR_SIZE) { | 866 | if (!rc && lower_ia.ia_valid & ATTR_SIZE) { |
867 | struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); | 867 | struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); |
868 | 868 | ||
869 | mutex_lock(&lower_dentry->d_inode->i_mutex); | 869 | mutex_lock(&d_inode(lower_dentry)->i_mutex); |
870 | rc = notify_change(lower_dentry, &lower_ia, NULL); | 870 | rc = notify_change(lower_dentry, &lower_ia, NULL); |
871 | mutex_unlock(&lower_dentry->d_inode->i_mutex); | 871 | mutex_unlock(&d_inode(lower_dentry)->i_mutex); |
872 | } | 872 | } |
873 | return rc; | 873 | return rc; |
874 | } | 874 | } |
@@ -900,10 +900,10 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia) | |||
900 | struct inode *lower_inode; | 900 | struct inode *lower_inode; |
901 | struct ecryptfs_crypt_stat *crypt_stat; | 901 | struct ecryptfs_crypt_stat *crypt_stat; |
902 | 902 | ||
903 | crypt_stat = &ecryptfs_inode_to_private(dentry->d_inode)->crypt_stat; | 903 | crypt_stat = &ecryptfs_inode_to_private(d_inode(dentry))->crypt_stat; |
904 | if (!(crypt_stat->flags & ECRYPTFS_STRUCT_INITIALIZED)) | 904 | if (!(crypt_stat->flags & ECRYPTFS_STRUCT_INITIALIZED)) |
905 | ecryptfs_init_crypt_stat(crypt_stat); | 905 | ecryptfs_init_crypt_stat(crypt_stat); |
906 | inode = dentry->d_inode; | 906 | inode = d_inode(dentry); |
907 | lower_inode = ecryptfs_inode_to_lower(inode); | 907 | lower_inode = ecryptfs_inode_to_lower(inode); |
908 | lower_dentry = ecryptfs_dentry_to_lower(dentry); | 908 | lower_dentry = ecryptfs_dentry_to_lower(dentry); |
909 | mutex_lock(&crypt_stat->cs_mutex); | 909 | mutex_lock(&crypt_stat->cs_mutex); |
@@ -967,9 +967,9 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia) | |||
967 | if (lower_ia.ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) | 967 | if (lower_ia.ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) |
968 | lower_ia.ia_valid &= ~ATTR_MODE; | 968 | lower_ia.ia_valid &= ~ATTR_MODE; |
969 | 969 | ||
970 | mutex_lock(&lower_dentry->d_inode->i_mutex); | 970 | mutex_lock(&d_inode(lower_dentry)->i_mutex); |
971 | rc = notify_change(lower_dentry, &lower_ia, NULL); | 971 | rc = notify_change(lower_dentry, &lower_ia, NULL); |
972 | mutex_unlock(&lower_dentry->d_inode->i_mutex); | 972 | mutex_unlock(&d_inode(lower_dentry)->i_mutex); |
973 | out: | 973 | out: |
974 | fsstack_copy_attr_all(inode, lower_inode); | 974 | fsstack_copy_attr_all(inode, lower_inode); |
975 | return rc; | 975 | return rc; |
@@ -983,7 +983,7 @@ static int ecryptfs_getattr_link(struct vfsmount *mnt, struct dentry *dentry, | |||
983 | 983 | ||
984 | mount_crypt_stat = &ecryptfs_superblock_to_private( | 984 | mount_crypt_stat = &ecryptfs_superblock_to_private( |
985 | dentry->d_sb)->mount_crypt_stat; | 985 | dentry->d_sb)->mount_crypt_stat; |
986 | generic_fillattr(dentry->d_inode, stat); | 986 | generic_fillattr(d_inode(dentry), stat); |
987 | if (mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES) { | 987 | if (mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES) { |
988 | char *target; | 988 | char *target; |
989 | size_t targetsiz; | 989 | size_t targetsiz; |
@@ -1007,9 +1007,9 @@ static int ecryptfs_getattr(struct vfsmount *mnt, struct dentry *dentry, | |||
1007 | 1007 | ||
1008 | rc = vfs_getattr(ecryptfs_dentry_to_lower_path(dentry), &lower_stat); | 1008 | rc = vfs_getattr(ecryptfs_dentry_to_lower_path(dentry), &lower_stat); |
1009 | if (!rc) { | 1009 | if (!rc) { |
1010 | fsstack_copy_attr_all(dentry->d_inode, | 1010 | fsstack_copy_attr_all(d_inode(dentry), |
1011 | ecryptfs_inode_to_lower(dentry->d_inode)); | 1011 | ecryptfs_inode_to_lower(d_inode(dentry))); |
1012 | generic_fillattr(dentry->d_inode, stat); | 1012 | generic_fillattr(d_inode(dentry), stat); |
1013 | stat->blocks = lower_stat.blocks; | 1013 | stat->blocks = lower_stat.blocks; |
1014 | } | 1014 | } |
1015 | return rc; | 1015 | return rc; |
@@ -1023,14 +1023,14 @@ ecryptfs_setxattr(struct dentry *dentry, const char *name, const void *value, | |||
1023 | struct dentry *lower_dentry; | 1023 | struct dentry *lower_dentry; |
1024 | 1024 | ||
1025 | lower_dentry = ecryptfs_dentry_to_lower(dentry); | 1025 | lower_dentry = ecryptfs_dentry_to_lower(dentry); |
1026 | if (!lower_dentry->d_inode->i_op->setxattr) { | 1026 | if (!d_inode(lower_dentry)->i_op->setxattr) { |
1027 | rc = -EOPNOTSUPP; | 1027 | rc = -EOPNOTSUPP; |
1028 | goto out; | 1028 | goto out; |
1029 | } | 1029 | } |
1030 | 1030 | ||
1031 | rc = vfs_setxattr(lower_dentry, name, value, size, flags); | 1031 | rc = vfs_setxattr(lower_dentry, name, value, size, flags); |
1032 | if (!rc && dentry->d_inode) | 1032 | if (!rc && d_really_is_positive(dentry)) |
1033 | fsstack_copy_attr_all(dentry->d_inode, lower_dentry->d_inode); | 1033 | fsstack_copy_attr_all(d_inode(dentry), d_inode(lower_dentry)); |
1034 | out: | 1034 | out: |
1035 | return rc; | 1035 | return rc; |
1036 | } | 1036 | } |
@@ -1041,14 +1041,14 @@ ecryptfs_getxattr_lower(struct dentry *lower_dentry, const char *name, | |||
1041 | { | 1041 | { |
1042 | int rc = 0; | 1042 | int rc = 0; |
1043 | 1043 | ||
1044 | if (!lower_dentry->d_inode->i_op->getxattr) { | 1044 | if (!d_inode(lower_dentry)->i_op->getxattr) { |
1045 | rc = -EOPNOTSUPP; | 1045 | rc = -EOPNOTSUPP; |
1046 | goto out; | 1046 | goto out; |
1047 | } | 1047 | } |
1048 | mutex_lock(&lower_dentry->d_inode->i_mutex); | 1048 | mutex_lock(&d_inode(lower_dentry)->i_mutex); |
1049 | rc = lower_dentry->d_inode->i_op->getxattr(lower_dentry, name, value, | 1049 | rc = d_inode(lower_dentry)->i_op->getxattr(lower_dentry, name, value, |
1050 | size); | 1050 | size); |
1051 | mutex_unlock(&lower_dentry->d_inode->i_mutex); | 1051 | mutex_unlock(&d_inode(lower_dentry)->i_mutex); |
1052 | out: | 1052 | out: |
1053 | return rc; | 1053 | return rc; |
1054 | } | 1054 | } |
@@ -1068,13 +1068,13 @@ ecryptfs_listxattr(struct dentry *dentry, char *list, size_t size) | |||
1068 | struct dentry *lower_dentry; | 1068 | struct dentry *lower_dentry; |
1069 | 1069 | ||
1070 | lower_dentry = ecryptfs_dentry_to_lower(dentry); | 1070 | lower_dentry = ecryptfs_dentry_to_lower(dentry); |
1071 | if (!lower_dentry->d_inode->i_op->listxattr) { | 1071 | if (!d_inode(lower_dentry)->i_op->listxattr) { |
1072 | rc = -EOPNOTSUPP; | 1072 | rc = -EOPNOTSUPP; |
1073 | goto out; | 1073 | goto out; |
1074 | } | 1074 | } |
1075 | mutex_lock(&lower_dentry->d_inode->i_mutex); | 1075 | mutex_lock(&d_inode(lower_dentry)->i_mutex); |
1076 | rc = lower_dentry->d_inode->i_op->listxattr(lower_dentry, list, size); | 1076 | rc = d_inode(lower_dentry)->i_op->listxattr(lower_dentry, list, size); |
1077 | mutex_unlock(&lower_dentry->d_inode->i_mutex); | 1077 | mutex_unlock(&d_inode(lower_dentry)->i_mutex); |
1078 | out: | 1078 | out: |
1079 | return rc; | 1079 | return rc; |
1080 | } | 1080 | } |
@@ -1085,13 +1085,13 @@ static int ecryptfs_removexattr(struct dentry *dentry, const char *name) | |||
1085 | struct dentry *lower_dentry; | 1085 | struct dentry *lower_dentry; |
1086 | 1086 | ||
1087 | lower_dentry = ecryptfs_dentry_to_lower(dentry); | 1087 | lower_dentry = ecryptfs_dentry_to_lower(dentry); |
1088 | if (!lower_dentry->d_inode->i_op->removexattr) { | 1088 | if (!d_inode(lower_dentry)->i_op->removexattr) { |
1089 | rc = -EOPNOTSUPP; | 1089 | rc = -EOPNOTSUPP; |
1090 | goto out; | 1090 | goto out; |
1091 | } | 1091 | } |
1092 | mutex_lock(&lower_dentry->d_inode->i_mutex); | 1092 | mutex_lock(&d_inode(lower_dentry)->i_mutex); |
1093 | rc = lower_dentry->d_inode->i_op->removexattr(lower_dentry, name); | 1093 | rc = d_inode(lower_dentry)->i_op->removexattr(lower_dentry, name); |
1094 | mutex_unlock(&lower_dentry->d_inode->i_mutex); | 1094 | mutex_unlock(&d_inode(lower_dentry)->i_mutex); |
1095 | out: | 1095 | out: |
1096 | return rc; | 1096 | return rc; |
1097 | } | 1097 | } |
diff --git a/fs/ecryptfs/kthread.c b/fs/ecryptfs/kthread.c index f1ea610362c6..866bb18efefe 100644 --- a/fs/ecryptfs/kthread.c +++ b/fs/ecryptfs/kthread.c | |||
@@ -144,7 +144,7 @@ int ecryptfs_privileged_open(struct file **lower_file, | |||
144 | /* Corresponding dput() and mntput() are done when the | 144 | /* Corresponding dput() and mntput() are done when the |
145 | * lower file is fput() when all eCryptfs files for the inode are | 145 | * lower file is fput() when all eCryptfs files for the inode are |
146 | * released. */ | 146 | * released. */ |
147 | flags |= IS_RDONLY(lower_dentry->d_inode) ? O_RDONLY : O_RDWR; | 147 | flags |= IS_RDONLY(d_inode(lower_dentry)) ? O_RDONLY : O_RDWR; |
148 | (*lower_file) = dentry_open(&req.path, flags, cred); | 148 | (*lower_file) = dentry_open(&req.path, flags, cred); |
149 | if (!IS_ERR(*lower_file)) | 149 | if (!IS_ERR(*lower_file)) |
150 | goto out; | 150 | goto out; |
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index c095d3264259..4f4d0474bee9 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c | |||
@@ -546,11 +546,11 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags | |||
546 | goto out_free; | 546 | goto out_free; |
547 | } | 547 | } |
548 | 548 | ||
549 | if (check_ruid && !uid_eq(path.dentry->d_inode->i_uid, current_uid())) { | 549 | if (check_ruid && !uid_eq(d_inode(path.dentry)->i_uid, current_uid())) { |
550 | rc = -EPERM; | 550 | rc = -EPERM; |
551 | printk(KERN_ERR "Mount of device (uid: %d) not owned by " | 551 | printk(KERN_ERR "Mount of device (uid: %d) not owned by " |
552 | "requested user (uid: %d)\n", | 552 | "requested user (uid: %d)\n", |
553 | i_uid_read(path.dentry->d_inode), | 553 | i_uid_read(d_inode(path.dentry)), |
554 | from_kuid(&init_user_ns, current_uid())); | 554 | from_kuid(&init_user_ns, current_uid())); |
555 | goto out_free; | 555 | goto out_free; |
556 | } | 556 | } |
@@ -584,7 +584,7 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags | |||
584 | goto out_free; | 584 | goto out_free; |
585 | } | 585 | } |
586 | 586 | ||
587 | inode = ecryptfs_get_inode(path.dentry->d_inode, s); | 587 | inode = ecryptfs_get_inode(d_inode(path.dentry), s); |
588 | rc = PTR_ERR(inode); | 588 | rc = PTR_ERR(inode); |
589 | if (IS_ERR(inode)) | 589 | if (IS_ERR(inode)) |
590 | goto out_free; | 590 | goto out_free; |
diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c index 4626976794e7..cf208522998e 100644 --- a/fs/ecryptfs/mmap.c +++ b/fs/ecryptfs/mmap.c | |||
@@ -420,7 +420,7 @@ static int ecryptfs_write_inode_size_to_xattr(struct inode *ecryptfs_inode) | |||
420 | void *xattr_virt; | 420 | void *xattr_virt; |
421 | struct dentry *lower_dentry = | 421 | struct dentry *lower_dentry = |
422 | ecryptfs_inode_to_private(ecryptfs_inode)->lower_file->f_path.dentry; | 422 | ecryptfs_inode_to_private(ecryptfs_inode)->lower_file->f_path.dentry; |
423 | struct inode *lower_inode = lower_dentry->d_inode; | 423 | struct inode *lower_inode = d_inode(lower_dentry); |
424 | int rc; | 424 | int rc; |
425 | 425 | ||
426 | if (!lower_inode->i_op->getxattr || !lower_inode->i_op->setxattr) { | 426 | if (!lower_inode->i_op->getxattr || !lower_inode->i_op->setxattr) { |