lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+55aFzG9gzWRLvZMb6RnKua0=RHxBFisYSCVDNhjHBq7oq2yw@mail.gmail.com>
Date:	Sun, 22 Jul 2012 10:34:10 -0700
From:	Linus Torvalds <torvalds@...ux-foundation.org>
To:	Al Viro <viro@...iv.linux.org.uk>
Cc:	linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
	Stephen Rothwell <sfr@...b.auug.org.au>,
	Trond Myklebust <Trond.Myklebust@...app.com>
Subject: Re: [git pull] vfs.git; pile 1

I'm not pulling this until the mess with the NFS tree is sorted out.
Apparently you rebased your (public!) VFS tree, and now half of your
old pre-rebase patches are in the NFS tree.

Rebasing public trees IS NOT A VALID OPERATION! Exactly because of
messes like this.

So no. No way am I pulling a big VFS tree that apparently has random
unknown aliased commits in other trees.

                  Linus

On Sun, Jul 22, 2012 at 3:09 AM, Al Viro <viro@...iv.linux.org.uk> wrote:
> This one is *big* and changes quite a few things around VFS.  What's in there:
>
>         * the first of two really major architecture changes - death to
> open intents.  The former is finally there; it was very long in making,
> but with Miklos getting through really hard and messy final push in
> fs/namei.c, we finally have it.  Unlike his variant, this one doesn't
> introduce struct opendata; what we have instead is ->atomic_open()
> taking preallocated struct file * and passing everything via its fields.
> Instead of returning struct file *, it returns -E... on error, 0 on success
> and 1 in "deal with it yourself" case (e.g. symlink found on server,
> etc.).  See comments before fs/namei.c:atomic_open().  That made a lot of
> goodies finally possible and quite a few are in that pile: ->lookup(),
> ->d_revalidate() and ->create() do not get struct nameidata * anymore;
> ->lookup() and ->d_revalidate() get lookup flags instead, ->create()
> gets "do we want it exclusive" flag.  With the introduction of new helper
> (kern_path_locked()) we are rid of all struct nameidata instances outside
> of fs/namei.c; it's still visible in namei.h, but not for long.  Come the
> next cycle, declaration will move either to fs/internal.h or to fs/namei.c
> itself. [me, miklos, hch]
>
>         * the second major change: behaviour of final fput().  Now we
> have __fput() done without any locks held by caller *and* not from deep
> in call stack.  That obviously lifts a lot of constraints on the locking
> in there.  Moreover, it's legal now to call fput() from atomic contexts
> (which has immediately simplified life for aio.c).  We also don't need
> anti-recursion logics in __scm_destroy() anymore.  There is a price,
> though - the damn thing has become partially asynchronous.  For fput()
> from normal process we are guaranteed that pending __fput() will be done
> before the caller returns to userland, exits or gets stopped for ptrace.
> For kernel threads and atomic contexts it's done via schedule_work(),
> so theoretically we might need a way to make sure it's finished; so far
> only one such place had been found, but there might be more.  There's
> flush_delayed_fput() (do all pending __fput()) and there's __fput_sync()
> (fput() analog doing __fput() immediately).  I hope we won't need them
> often; see warnings in fs/file_table.c for details. [me, based on task_work
> series from Oleg merged last cycle]
>
>         * sync series from Jan
>
>         * large part of "death to sync_supers()" work from Artem; the only
> bits missing here are exofs and ext4 ones.  As far as I understand, those
> are going via the exofs and ext4 trees resp.; once they are in, we can
> put ->write_super() to the rest, along with the thread calling it.
>
>         * preparatory bits from unionmount series (from dhowells).
>
>         * assorted cleanups and fixes all over the place, as usual.
>
> This is not the last pile for this cycle; there's at least jlayton's
> ESTALE work and fsfreeze series (the latter - in dire need of
> fixes, so I'm not sure it'll make the cut this cycle).  I'll
> probably throw symlink/hardlink restrictions stuff from Kees into
> the next pile, too.  Plus there's a lot of misc patches I hadn't
> thrown into that one - it's large enough as it is...
>
> Please, pull from the usual place -
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
>
> Shortlog:
> Al Viro (61):
>       get rid of ->mnt_longterm
>       get rid of magic in proc_namespace.c
>       qnx6: don't bother with ->i_dentry in inode-freeing callback
>       cifs: don't bother with ->i_dentry in ->destroy_inode()
>       adfs: don't bother with ->i_dentry in ->destroy_inode()
>       vfs: update documentation on ->i_dentry handling
>       affs: get rid of open-coded list_for_each_entry()
>       affs: unobfuscate affs_fix_dcache()
>       ocfs2: use list_for_each_entry in ocfs2_find_local_alias()
>       ext4: get rid of open-coded d_find_any_alias()
>       vfs: switch i_dentry/d_alias to hlist
>       coda: use list_for_each_entry
>       namei.c: let follow_link() do put_link() on failure
>       ->atomic_open() prototype change - pass int * instead of bool *
>       don't modify od->filp at all
>       make ->atomic_open() return int
>       kill opendata->{mnt,dentry}
>       kill struct opendata
>       fs/namei.c: get do_last() and friends return int
>       make finish_no_open() return int
>       switch do_dentry_open() to returning int
>       fold __dentry_open() into its sole caller
>       do_dentry_open(): take initialization of file->f_path to caller
>       switch nfs_lookup_check_intent() away from nameidata
>       nfs_lookup_verify_inode() - nd is *always* non-NULL here
>       fs/nfs/dir.c: switch to passing nd->flags instead of nd wherever possible
>       stop passing nameidata * to ->d_revalidate()
>       fs/namei.c: don't pass nameidata to d_revalidate()
>       fs/namei.c: don't pass namedata to lookup_dcache()
>       stop passing nameidata to ->lookup()
>       fs/namei.c: don't pass nameidata to __lookup_hash() and lookup_real()
>       don't pass nameidata to ->create()
>       don't pass nameidata * to vfs_create()
>       get rid of kern_path_parent()
>       sysfs: switch to ->s_d_op and ->d_release()
>       sysfs: just use d_materialise_unique()
>       __d_unalias() should refuse to move mountpoints
>       debugfs: make sure that debugfs_create_file() gets used only for regulars
>       debugfs: fold debugfs_create_by_name() into the only caller
>       debugfs: get rid of useless arguments to debugfs_{mkdir,symlink}
>       mark_files_ro(): don't bother with mntget/mntput
>       do_dentry_open(): close the race with mark_files_ro() in failure exit
>       signal: make sure we don't get stopped with pending task_work
>       trimming task_work: kill ->data
>       trim task_work: get rid of hlist
>       merge task_work and rcu_head, get rid of separate allocation for keyring case
>       move exit_task_work() past exit_files() et.al.
>       deal with task_work callbacks adding more work
>       switch fput to task_work_add
>       aio: now fput() is OK from interrupt context; get rid of manual delayed __fput()
>       get rid of ->scm_work_list
>       hold task_lock around checks in keyctl
>       unobfuscate follow_up() a bit
>       tidy up namei.c a bit
>       don't expose I_NEW inodes via dentry->d_inode
>       ecryptfs: don't reinvent the wheels, please - use struct completion
>       zoran: don't bother with struct file * in zoran_map
>       spufs: shift dget/mntget towards dentry_open()
>       switch dentry_open() to struct path, make it grab references itself
>       btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()
>       ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()
>
> Andrew Morton (1):
>       notify_change(): check that i_mutex is held
>
> Artem Bityutskiy (23):
>       affs: stop setting bm_flags
>       affs: remove useless superblock writeout on unmount
>       affs: remove useless superblock writeout on remount
>       affs: re-structure superblock locking a bit
>       affs: stop using lock_super
>       affs: introduce VFS superblock object back-reference
>       affs: get rid of affs_sync_super
>       hfsplus: make hfsplus_sync_fs static
>       hfsplus: amend debugging print
>       hfsplus: remove useless check
>       hfsplus: get rid of write_super
>       hfs: push lock_super down
>       hfs: get rid of lock_super
>       hfs: remove extra mdb write on unmount
>       hfs: simplify a bit checking for R/O
>       hfs: introduce VFS superblock object back-reference
>       hfs: get rid of hfs_sync_super
>       fs/sysv: remove useless write_super call
>       fs/sysv: remove another useless write_super call
>       fs/sysv: stop using write_super and s_dirt
>       fs/ufs: remove extra superblock write on unmount
>       fs/ufs: re-arrange the code a bit
>       fs/ufs: get rid of write_super
>
> Christoph Hellwig (2):
>       fs: move path_put on failure out of ->follow_link
>       fs: add nd_jump_link
>
> David Howells (6):
>       VFS: Fix the banner comment on lookup_open()
>       VFS: Make chown() and lchown() call fchownat()
>       VFS: Make clone_mnt()/copy_tree()/collect_mounts() return errors
>       VFS: Comment mount following code
>       VFS: Pass mount flags to sget()
>       VFS: Split inode_permission()
>
> Eric Sandeen (3):
>       vfs: allow custom EOF in generic_file_llseek code
>       ext4: use core vfs llseek code for dir seeks
>       ext3: pass custom EOF to generic_file_llseek_size()
>
> Jan Kara (8):
>       vfs: Move noop_backing_dev_info check from sync into writeback
>       quota: Split dquot_quota_sync() to writeback and cache flushing part
>       quota: Move quota syncing to ->sync_fs method
>       vfs: Reorder operations during sys_sync
>       vfs: Create function for iterating over block devices
>       vfs: Make sys_sync writeout also block device inodes
>       vfs: Remove unnecessary flushing of block devices
>       vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes
>
> Julia Lawall (1):
>       fs/direct-io.c: adjust suspicious bit operation
>
> Miklos Szeredi (21):
>       vfs: do_last(): inline lookup_slow()
>       vfs: do_last(): separate O_CREAT specific code
>       vfs: do_last(): common slow lookup
>       vfs: add lookup_open()
>       vfs: lookup_open(): expand lookup_hash()
>       vfs: add i_op->atomic_open()
>       nfs: implement i_op->atomic_open()
>       nfs: clean up ->create in nfs_rpc_ops
>       nfs: don't use nd->intent.open.flags
>       nfs: don't use intents for checking atomic open
>       fuse: implement i_op->atomic_open()
>       cifs: implement i_op->atomic_open()
>       ceph: remove unused arg from ceph_lookup_open()
>       ceph: implement i_op->atomic_open()
>       9p: implement i_op->atomic_open()
>       vfs: remove open intents from nameidata
>       vfs: do_last(): clean up error handling
>       vfs: do_last(): clean up labels
>       vfs: do_last(): clean up bool
>       vfs: do_last(): clean up retry
>       vfs: move O_DIRECT check to common code
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ