search for: d_inode

Displaying 20 results from an estimated 98 matches for "d_inode".

2010 Oct 25
2
[PATCH] Btrfs: allow subvol deletion by unprivileged user with -o user_subvol_rm_allowed
.... + * 9. We can''t remove a root or mountpoint. + * 10. We don''t allow removal of NFS sillyrenamed files; it''s handled by + * nfs_async_unlink(). + */ + +static int btrfs_may_delete(struct inode *dir,struct dentry *victim,int isdir) +{ + int error; + + if (!victim->d_inode) + return -ENOENT; + + BUG_ON(victim->d_parent->d_inode != dir); + audit_inode_child(victim, dir); + + error = inode_permission(dir, MAY_WRITE | MAY_EXEC); + if (error) + return error; + if (IS_APPEND(dir)) + return -EPERM; + if (btrfs_check_sticky(dir, victim->d_inode)|| + IS_APPEND(v...
2001 Mar 13
5
is this null block OK?
..._FREE(rd, sizeof(*rd)); write_unlock(&fd->fd_lock); EXIT; return; } static int presto_do_truncate(struct presto_file_set *fset, struct dentry *dentry, loff_t length, loff_t size_check) { struct inode *inode = dentry->d_inode; struct super_operations *op; int error; struct iattr newattrs; ENTRY; /* Not pretty: "inode->i_size" shouldn't really be "loff_t". */ if ((off_t) length < 0) return -EINVAL; down(&inode-&g...
2008 Aug 19
0
[PATCH] Reinstate '-osubvol=.' option to mount entire tree
...les changed, 19 insertions(+), 15 deletions(-) diff --git a/super.c b/super.c index 55f4d00..f7b3eac 100644 --- a/super.c +++ b/super.c @@ -451,21 +451,25 @@ static int btrfs_get_sb(struct file_system_type *fs_type, int flags, s->s_flags |= MS_ACTIVE; } - mutex_lock(&s->s_root->d_inode->i_mutex); - root = lookup_one_len(subvol_name, s->s_root, strlen(subvol_name)); - mutex_unlock(&s->s_root->d_inode->i_mutex); - if (IS_ERR(root)) { - up_write(&s->s_umount); - deactivate_super(s); - error = PTR_ERR(root); - goto error; - } - if (!root->d_inode) { -...
2002 Feb 14
1
[BUG] [PATCH]: handling bad inodes in 2.4.x kernels
...y bug that needs to get fixed. the bug is most likely in fs/namei.c, open_namei() - at least i fixed my machine here with this: --- linux-2.4.17-orig/fs/namei.c Wed Oct 17 23:46:29 2001 +++ linux-2.4.17-uml/fs/namei.c Fri Feb 8 02:53:36 2002 @@ -1052,6 +1052,11 @@ error = -ENOENT; if (!dentry->d_inode) goto exit_dput; + + error = -EIO; + if (is_bad_inode(dentry->d_inode)) + goto exit_dput; + if (dentry->d_inode->i_op && dentry->d_inode->i_op->follow_link) goto do_link; an open() does not make any sense on a bad inode so i see no reason for not breaking the branch at th...
2003 Jan 16
0
[PATCH] Using qstr in ext3_get_parent()
...probe(struct dentry *dentry, struct inode *dir, +dx_probe(struct qstr *entry, struct inode *dir, struct dx_hash_info *hinfo, struct dx_frame *frame_in, int *err) { unsigned count, indirect; @@ -328,8 +329,6 @@ u32 hash; frame->bh = NULL; - if (dentry) - dir = dentry->d_parent->d_inode; if (!(bh = ext3_bread (NULL,dir, 0, 0, err))) goto fail; root = (struct dx_root *) bh->b_data; @@ -345,8 +344,8 @@ } hinfo->hash_version = root->info.hash_version; hinfo->seed = EXT3_SB(dir->i_sb)->s_hash_seed; - if (dentry) - ext3fs_dirhash(dentry->d_name.name,...
2011 Apr 19
2
ocfs or configfs bug ?
Hi all, I have a bug with OCFS through configfs : to illustrate this, try : while true ; do ls -l /sys/kernel/config/cluster/ocfs2/heartbeat ; done& while true ; do echo 31> /sys/kernel/config/cluster/ocfs2/heartbeat/dead_threshold ; done& So, I have a kernel crash : BUG: unable to handle kernel NULL pointer dereference at 0000000000000040 IP: [<ffffffffa01fd214>]
2011 Apr 19
2
ocfs or configfs bug ?
Hi all, I have a bug with OCFS through configfs : to illustrate this, try : while true ; do ls -l /sys/kernel/config/cluster/ocfs2/heartbeat ; done& while true ; do echo 31> /sys/kernel/config/cluster/ocfs2/heartbeat/dead_threshold ; done& So, I have a kernel crash : BUG: unable to handle kernel NULL pointer dereference at 0000000000000040 IP: [<ffffffffa01fd214>]
2001 Sep 19
2
Coda and Ext3
Hi everyone, The Linux Coda drivers and the ext3 patches don't seem to get along very well, at least in Linux 2.4.7. I've got a stock 2.4.7 kernel with a patch applied to the USB drivers (for a sony digital camera; see http://www.sujal.net/tech/linux/ just a change in unusual_devs.h). After I applied the ext3 patches from http://www.uow.edu.au/~andrewm/linux/ext3/ . Basically,
2008 Jul 14
18
[git patches] Ocfs2 and Configfs updates for 2.6.27
I'm running a bit late with the e-mail this time around, but I think that's ok since there really isn't any major new features here - the bulk of the Ocfs2 update is bug fixes, or cleanups. The same goes for configfs. The only two things that could be described as features would be: - Sunil has updated Ocfs2 to provide even more live cluster locking information via debugfs. - Joel
2003 Feb 08
3
Bug moving file over link?
Can someone explain to me what is happening here: ~ $ touch foo ~ $ ln foo bar ~ $ ls foo bar bar foo ~ $ mv foo bar ~ $ ls foo bar bar foo I try to move a file over a hard linked copy of itself and the move fails, but there is no error. Is this the intended behavior? -- Ben Escoto
2009 Nov 03
2
[PATCH]] Btrfs: fix destroy snapshot to get the right parent dentry
...s/btrfs/ioctl.c @@ -741,7 +741,7 @@ out: static noinline int btrfs_ioctl_snap_destroy(struct file *file, void __user *arg) { - struct dentry *parent = fdentry(file); + struct dentry *parent = file->f_path.dentry->d_parent; struct dentry *dentry; struct inode *dir = parent->d_inode; struct inode *inode; @@ -793,9 +793,6 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file, dest = BTRFS_I(inode)->root; mutex_lock(&inode->i_mutex); - err = d_invalidate(dentry); - if (err) - goto out_unlock; down_write(&root->fs_info->subvol_sem);...
2012 Jan 30
3
[PATCH] Btrfs: allow cloning ranges within the same file
...nge. - * - allow ranges within the same file to be cloned (provided - * they don''t overlap)? */ /* the destination must be opened for writing */ @@ -2247,8 +2245,6 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd, src = src_file->f_dentry->d_inode; ret = -EINVAL; - if (src == inode) - goto out_fput; /* the src must be open for reading */ if (!(src_file->f_mode & FMODE_READ)) @@ -2282,9 +2278,11 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd, if (inode < src) { mutex_lock_nested(&amp...
2011 Mar 31
3
[PATCH 1/3] VFS/ioctl: Add punching-hole support to ioctl().
...e l_start, l_len and l_whence fields of the 'struct space_resv' * are used here, rest are ignored. */ -int ioctl_preallocate(struct file *filp, void __user *argp) +int ioctl_preallocate(struct file *filp, void __user *argp, int mode) { struct inode *inode = filp->f_path.dentry->d_inode; struct space_resv sr; @@ -443,7 +443,7 @@ int ioctl_preallocate(struct file *filp, void __user *argp) return -EINVAL; } - return do_fallocate(filp, FALLOC_FL_KEEP_SIZE, sr.l_start, sr.l_len); + return do_fallocate(filp, mode, sr.l_start, sr.l_len); } static int file_ioctl(struct file...
2011 Mar 31
3
[PATCH 1/3] VFS/ioctl: Add punching-hole support to ioctl().
...e l_start, l_len and l_whence fields of the 'struct space_resv' * are used here, rest are ignored. */ -int ioctl_preallocate(struct file *filp, void __user *argp) +int ioctl_preallocate(struct file *filp, void __user *argp, int mode) { struct inode *inode = filp->f_path.dentry->d_inode; struct space_resv sr; @@ -443,7 +443,7 @@ int ioctl_preallocate(struct file *filp, void __user *argp) return -EINVAL; } - return do_fallocate(filp, FALLOC_FL_KEEP_SIZE, sr.l_start, sr.l_len); + return do_fallocate(filp, mode, sr.l_start, sr.l_len); } static int file_ioctl(struct file...
2009 Apr 06
0
[PATCH] ocfs2: Use nd_set_link().
...page); -static char *ocfs2_fast_symlink_getlink(struct inode *inode, - struct buffer_head **bh); - -/* get the link contents into pagecache */ -static char *ocfs2_page_getlink(struct dentry * dentry, - struct page **ppage) -{ - struct page * page; - struct address_space *mapping = dentry->d_inode->i_mapping; - page = read_mapping_page(mapping, 0, NULL); - if (IS_ERR(page)) - goto sync_fail; - *ppage = page; - return kmap(page); - -sync_fail: - return (char*)page; -} static char *ocfs2_fast_symlink_getlink(struct inode *inode, struct buffer_head **bh) @@ -128,40 +109,55 @@ out:...
2009 Jun 19
2
[PATCH] ocfs2: Update atime in splice read if necessary.
...ex 775ac34..95cba48 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -2025,7 +2025,7 @@ static ssize_t ocfs2_file_splice_read(struct file *in, size_t len, unsigned int flags) { - int ret = 0; + int ret = 0, lock_level = 0; struct inode *inode = in->f_path.dentry->d_inode; mlog_entry("(0x%p, 0x%p, %u, '%.*s')\n", in, pipe, @@ -2036,12 +2036,12 @@ static ssize_t ocfs2_file_splice_read(struct file *in, /* * See the comment in ocfs2_file_aio_read() */ - ret = ocfs2_inode_lock(inode, NULL, 0); + ret = ocfs2_inode_lock_atime(inode, in->f_...
2010 Nov 19
5
[PATCH 1/1] Ocfs2: Teach 'coherency=full' O_DIRECT writes to correctly up_read i_alloc_sem.
...+), 2 deletions(-) diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index f1e962c..fd0713c 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c @@ -568,7 +568,7 @@ static void ocfs2_dio_end_io(struct kiocb *iocb, bool is_async) { struct inode *inode = iocb->ki_filp->f_path.dentry->d_inode; - int level; + int level, coherency; /* this io's submitter should not have unlocked this before we could */ BUG_ON(!ocfs2_iocb_is_rw_locked(iocb)); @@ -576,7 +576,12 @@ static void ocfs2_dio_end_io(struct kiocb *iocb, ocfs2_iocb_clear_rw_locked(iocb); level = ocfs2_iocb_rw_locked_...
2011 Jun 24
10
[PATCH 0/9] remove i_alloc_sem V2
i_alloc_sem has always been a bit of an odd "lock". It''s the only remaining rw_semaphore that can be released by a different thread than the one that locked it, and it''s use case in the core direct I/O code is more like a counter given that the writers already have external serialization. This series removes it in favour of a simpler counter scheme, thus getting rid
2010 Jun 17
1
kjournald blocked in D state
...00001 10215a83ba8: 000001004f4e90e0 ffffffffa0080ffe -----snip----- I'm not a crash expert so I then looked the last address pushed onto its stack and traced down to the inode semaphore: crash> struct file.f_dentry 000001005fa12ce8 f_dentry = 0x1021f4e5510, crash> struct dentry.d_inode 0x1021f4e5510 d_inode = 0x100c95c17c0, crash> struct inode.i_sem 0x100c95c17c0 i_sem = { count = { counter = -916711312 <-------------------- This looks wrong }, sleepers = 256, wait = { lock = { lock = 497690456, magic = 258 },...
2012 Feb 13
1
Cross-subvolume reflink copy (BTRFS_IOC_CLONE over subvolume boundaries)
It''s been nearly a year since the patches needed to implement a reflinked copy between subvolumes have been posted (http://permalink.gmane.org/gmane.comp.file-systems.btrfs/9865 ) and I still get "Invalid cross-device link" error with Linux 3.2.4 while I try to do a cp --reflink between subvolumes. This is a *very* useful feature to have (think offline file-level