mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs updates from Al Viro: "Assorted cleanups and fixes. Probably the most interesting part long-term is ->d_init() - that will have a bunch of followups in (at least) ceph and lustre, but we'll need to sort the barrier-related rules before it can get used for really non-trivial stuff. Another fun thing is the merge of ->d_iput() callers (dentry_iput() and dentry_unlink_inode()) and a bunch of ->d_compare() ones (all except the one in __d_lookup_lru())" * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (26 commits) fs/dcache.c: avoid soft-lockup in dput() vfs: new d_init method vfs: Update lookup_dcache() comment bdev: get rid of ->bd_inodes Remove last traces of ->sync_page new helper: d_same_name() dentry_cmp(): use lockless_dereference() instead of smp_read_barrier_depends() vfs: clean up documentation vfs: document ->d_real() vfs: merge .d_select_inode() into .d_real() unify dentry_iput() and dentry_unlink_inode() binfmt_misc: ->s_root is not going anywhere drop redundant ->owner initializations ufs: get rid of redundant checks orangefs: constify inode_operations missed comment updates from ->direct_IO() prototype change file_inode(f)->i_mapping is f->f_mapping trim fsnotify hooks a bit 9p: new helper - v9fs_parent_fid() debugfs: ->d_parent is never NULL or negative ...
This commit is contained in:
commit
6784725ab0
61 changed files with 224 additions and 413 deletions
17
fs/ufs/dir.c
17
fs/ufs/dir.c
|
|
@ -279,12 +279,6 @@ struct ufs_dir_entry *ufs_find_entry(struct inode *dir, const struct qstr *qstr,
|
|||
de = (struct ufs_dir_entry *) kaddr;
|
||||
kaddr += ufs_last_byte(dir, n) - reclen;
|
||||
while ((char *) de <= kaddr) {
|
||||
if (de->d_reclen == 0) {
|
||||
ufs_error(dir->i_sb, __func__,
|
||||
"zero-length directory entry");
|
||||
ufs_put_page(page);
|
||||
goto out;
|
||||
}
|
||||
if (ufs_match(sb, namelen, name, de))
|
||||
goto found;
|
||||
de = ufs_next_entry(sb, de);
|
||||
|
|
@ -414,11 +408,8 @@ ufs_validate_entry(struct super_block *sb, char *base,
|
|||
{
|
||||
struct ufs_dir_entry *de = (struct ufs_dir_entry*)(base + offset);
|
||||
struct ufs_dir_entry *p = (struct ufs_dir_entry*)(base + (offset&mask));
|
||||
while ((char*)p < (char*)de) {
|
||||
if (p->d_reclen == 0)
|
||||
break;
|
||||
while ((char*)p < (char*)de)
|
||||
p = ufs_next_entry(sb, p);
|
||||
}
|
||||
return (char *)p - base;
|
||||
}
|
||||
|
||||
|
|
@ -469,12 +460,6 @@ ufs_readdir(struct file *file, struct dir_context *ctx)
|
|||
de = (struct ufs_dir_entry *)(kaddr+offset);
|
||||
limit = kaddr + ufs_last_byte(inode, n) - UFS_DIR_REC_LEN(1);
|
||||
for ( ;(char*)de <= limit; de = ufs_next_entry(sb, de)) {
|
||||
if (de->d_reclen == 0) {
|
||||
ufs_error(sb, __func__,
|
||||
"zero-length directory entry");
|
||||
ufs_put_page(page);
|
||||
return -EIO;
|
||||
}
|
||||
if (de->d_ino) {
|
||||
unsigned char d_type = DT_UNKNOWN;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue