X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=kernel-aufs4.patch;h=31d98cdae1c16b9485c1aab63940b0a2232b45ee;hb=6b57a43dd17648cdbfcfdc98aca432342eba03b4;hp=e9aae06cd3760354d56387a32eadf182a0b2c427;hpb=8cdd506658fabb22c3d6a06eb6782d22cc7dbb55;p=packages%2Fkernel.git diff --git a/kernel-aufs4.patch b/kernel-aufs4.patch index e9aae06c..31d98cda 100644 --- a/kernel-aufs4.patch +++ b/kernel-aufs4.patch @@ -35676,9 +35676,9 @@ index abfdd2b..a2e3c43 100644 /* freeze queue and wait for completion of scheduled requests */ blk_mq_freeze_queue(lo->lo_queue); @@ -617,7 +620,16 @@ static int loop_switch(struct loop_device *lo, struct file *file) - */ - static int loop_flush(struct loop_device *lo) - { + /* loop not yet configured, no running thread, nothing to flush */ + if (lo->lo_state != Lo_bound) + return 0; - return loop_switch(lo, NULL); + return loop_switch(lo, NULL, NULL); +} @@ -35701,7 +35701,7 @@ index abfdd2b..a2e3c43 100644 struct inode *inode; int error; -@@ -670,9 +683,16 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev, +@@ -670,13 +683,20 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev, file = fget(arg); if (!file) goto out; @@ -35712,6 +35712,10 @@ index abfdd2b..a2e3c43 100644 + get_file(file); + } + error = loop_validate_file(file, bdev); + if (error) + goto out_putf; + inode = file->f_mapping->host; old_file = lo->lo_backing_file; + old_virt_file = lo->lo_backing_virt_file; @@ -35745,7 +35749,7 @@ index abfdd2b..a2e3c43 100644 static int loop_set_fd(struct loop_device *lo, fmode_t mode, struct block_device *bdev, unsigned int arg) { -- struct file *file, *f; +- struct file *file; + struct file *file, *f, *virt_file = NULL; struct inode *inode; struct address_space *mapping;